@Getter/@Setter 自动产生 getter/setter
@ToString 自动重写toString()方法,会印出所有变量
@EqualsAndHashCode 自动生成equals(Object other)和hashcode()方法,包括所有非静态变量和非 transient 的变量
如果某些变量不想要加进判断,可以透过 exclude 排除,也可以使用 of 指定某些字段
@EqualsAndHashCode(exclude={"name","age"})
@NoArgsConstructor: 生成一个没有参数的构造器
@AllArgsConstructor: 生成一个包含所有参数的构造器
@RequiredArgsConstructor: 生成一个包含 "特定参数" 的构造器,特定参数指的是那些有加上 final 修饰词的变量们 ,没有默认空参
@Data
整合包,只要加了 @Data 这个注解,等于同时加了以下注解
@Getter/@Setter
@ToString
@EqualsAndHashCode
@RequiredArgsConstructor
@Value
也是整合包,但是他会把所有的变量都设成 final 的,其他的就跟 @Data 一样,等于同时加了以下注解
@Getter (注意没有setter)
@ToString
@EqualsAndHashCode
@RequiredArgsConstructor
注意一下,此 lombok 的注解 @Value 和另一个 Spring 的注解 @Value 撞名
@Builder
自动生成流式 set 值写法,从此之后再也不用写一堆 setter 了
通常是 @Data 和 @Builder 会一起用在同个类上
@Slf4j
自动生成该类的 log 静态常量,要打日志就可以直接打,不用再手动 new log 静态常量了