一、添加 maven 依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
Lombok常用注解如下图所示:
二、注解
@Getter/@Setter
添加注解会自动生成 getter/setter,不需要再写getter/setter方法。
@ToString
自动重写 toString() 方法
@Data
只要加了 @Data 这个注解,等于同时加了以下注解:
@Getter
@Setter
@RequiredArgsConstructor
@ToString
@EqualsAndHashCode
@Data 是使用频率最高的 lombok 注解,通常 @Data 会加在一个值可以被更新的对象上,像是日常使用的 DTO
们、或是 JPA 里的 Entity
,就很适合加上 @Data 注解。
@Value
只要加了 @Value 这个注解,等于同时加了以下注解:
@ToString
@EqualsAndHashCode
@AllArgsConstructor
@FieldDefaults
@Getter
所有字段由private和final修饰,不会产生setter方法。类本身也是由final修饰。
@Builder
自动生成流式 set 值写法,从此之后再也不用写一堆 setter 了
iSysRoleService.deleteUserRoleInfo(SysUserRole.builder().userId(yhId).roleId(roleId).build());
注意:
由于Builder会生成一个全参构造器,导致默认的无参构造器失效,所以类采用@Builder注解后无法new出来。
解决方法:
加上@AllArgsConstructor、@NoArgsConstructor后就可以同时使用new和构造者方式实例化对象了
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Person{}
@EqualsAndHashCode
自动生成 equals(Object other) 和 hashcode() 方法,包括所有非静态变量和非 transient 的变量;如果某些变量不想要加进判断,可以透过 exclude 排除,也可以使用 of 指定某些字段
@EqualsAndHashCode(exclude = "name")
@Slf4j
自动生成该类的 log 静态常量,要打日志就可以直接打,不用再手动 new log 静态常量了