一、 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, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=firestorm.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.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 | 标识对象是否为空,为空则抛出异常 |