一、 lombok 的作用
在编写实体 bean 中经常会有大量的 Getter/Setter 以及 toString等方法,造成许多无用的代码,影响开发的体验。且随着需求修改我们需要改动 bean 时,又需要把这些方法删掉重新生成,浪费了时间。
lombok 则帮我们解决了这个问题,它能够在编译源码的过程中,自动帮助开发者生成 Getter/Setter 以及 toString 等方法的代码,使开发者无需再写 Getter/Setter 以及 toString等方法。
二、引入和使用
2.1 引入 lombok
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version>
</dependency>
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.25</version>
</dependency>
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.25</version>
</dependency>
引入 log4j配置文件: log4j.properties
log4j.rootLogger=info, stdout, Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p - %m%nlog4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=firestorm.loglog4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%nlog4j.logger.com.codefutures=INFO
2.2 基本使用
在类中使用 @Data 表明这个 bean 需要 lombok 对他进行补全。
import lombok.Data;/*** 封装文件上传信息*/
@Data
public class FastDFSFile {// 文件名private String name;// 文件内容private byte[] content;// 文件扩展名private String md5;// 文件创建作者private String author;public FastDFSFile(String name, byte[] content, String md5, String author) {this.name = name;this.content = content;this.md5 = md5;this.author = author;}
}
2.3 其他使用
主要是基于标注来进行信息的封装和使用:
类型 | 注解名 | 作用 |
类注解 | @Data | @Getter/@Setter, @ToString, @EqualAndHashCode等的组合 |
@Getter | 自动生成Getter方法 | |
@Setter | 自动生成Setter方法 | |
@ToString | 覆盖tostring方法 | |
@EqualsAndHashCode | 覆盖equal和hashCode方法 | |
@NoArgsConstructor | 生成一个无参构造方法 | |
@AllArgsConstructor | 生成一个包含全部参数的构造方法 | |
@Slf4j | 默认使用slf4j的日志对象 | |
属性注解 | @NonNull | 标识对象是否为空,为空则抛出异常 |