依赖

1
2
3
4
5
6
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>provided</scope>
</dependency>

Lombok 的使用

1
2
3
4
5
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)

@Data

@Data 最常用的注解之一。注解在类上,提供该类所有属性的 getter/setter 方法,还提供了 equals、canEqual、hashCode、toString 方法

@EqualsAndHashCode

重写 equals、hashCode 方法

@Slf4j

作用于类上,为该类提供一个属性名为 log 的 log4j 日志对象

1
log.debug("{}-{},修改之后的注解值:{}", className.getName(), fieldName, tableField.exist());

@Accessors(chain = true)

提供链式写法,set 操作的返回值就是对象本身

@Builder

  1. Entity 上加上 @Builder 时,会默认为类加上全参构造函数,且提供以建造器模式构造对象的方法
  2. 但因为显示声明了全参构造器,默认的无参构造器就失效了,就不能通过 new Obj () 的方式创建对象
  3. 但是如果显式声明了 @NoArgsConstructor,lombok 就不会生成全参构造函数,而 @Builder 中会用到全参构造函数,所以冲突

解决:

1
2
3
@Builder
@NoArgsConstructor
@AllArgsConstructor