1 Lombok注解
1.1 @Getter和@Setter
@Getter 和 @Setter 就是为成员变量自动生成 get 和 set 方法。
1.2 @ToString
该注解需应用在类上,为我们生成 Object 的 toString 方法。
1.3 @EqualsAndHashCode
该注解需应用在类上,使用该注解,lombok会为我们生成 equals(Object other) 和 hashcode() 方法,包括所有非静态属性和非transient的属性,同样该注解也可以通过 exclude 属性排除某些字段,of 属性指定某些字段,也可以通过 callSuper 属性在重写的方法中使用父类的字段,这样我们可以更灵活的定义bean的比对,如下图:
1.4 @NonNull
该注解需应用在方法或构造器的参数上或属性上,用来判断参数的合法性,默认抛出 NullPointerException 异常
1.5 @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor
以上三个注解分别为我们生成无参构造器,指定参数构造器和包含所有参数的构造器,默认情况下,@RequiredArgsConstructor, @AllArgsConstructor 生成的构造器会对所有标记 @NonNull 的属性做非空校验。
1.6 @Data
介绍了以上的注解,再来介绍 @Data 就非常容易懂了,@Data 注解应用在类上,是@ToString, @EqualsAndHashCode, @Getter / @Setter 和 @RequiredArgsConstructor合力的体现,如下图:
1.7 @Builder
函数式编程或者说流式的操作越来越流行,应用在大多数语言中,让程序更具更简介,可读性更高,编写更连贯,@Builder就带来了这个功能,生成一系列的builder API,该注解也需要应用在类上,看下面的例子就会更加清晰明了。
1.8 @Log
该注解需要应用到类上,在编写服务层,需要添加一些日志,以便定位问题,我们通常会定义一个静态常量Logger,然后应用到我们想日志的地方,现在一个注解就可以实现: