简介
Lombok 是一款非常实用的Java 工具,它提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的Java 代码,特别是针对于 POJO,构建诸如Setter/Getter、Constructor、toString()、hashCode()和equals()这样的方法。
安装Lombok
添加maven依赖:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.16</version>
<scope>provided</scope>
</dependency>
scope 是provided而不是compile,因为这个框架是在将java编译为class前处理代码了,意思是在生成的class文件中已经生成了getter和setter,所以这个依赖是我们在编译的时候使用,不需要打包到jar/war中。
安装Lombok插件
IntelliJ IDEA 安装Lombok插件:
File > Settings > Plugins > Browse repositories
在输入框内输入lombok,可看到已经搜索出来了这个插件,我们点击旁边的安装,安装完成后重启插件我们就安装完毕了,截图如下:
开启项目的Annotation process
如下图:
Lombok features
- val:用在局部变量前面,相当于将变量声明为final
- @NonNull:给方法参数增加这个注解会自动在方法内对该参数进行是否为空的校验,如果为空,则抛出NPE(NullPointerException);
- @Cleanup自动管理资源,用在局部变量之前,在当前变量范围内即将执行完毕退出之前会自动清理资源(调用close方法);
- @Getter / @Setter:用在属性上,再也不用自己手写setter和getter方法了,还可以指定访问范围;
- @ToString:用在类上,可以自动覆写toString方法,当然还可以加其他参数,例如@ToString(exclude=”id”)排除id属性;
- @EqualsAndHashCode:用在类上,自动生成equals方法和hashCode方法;
- @NoArgsConstructor、@RequiredArgsConstructor 和@AllArgsConstructor:用在类上,自动生成无参构造和使用所有参数的构造函数以及把所有@NonNull属性作为参数的构造函数,如果指定staticName = “of”参数,同时还会生成一个返回类对象的静态工厂方法,比使用构造函数方便很多;
- @Data:注解在类上,相当于同时使用了@ToString、@EqualsAndHashCode、@Getter、@Setter和@RequiredArgsConstrutor这些注解,对于POJO类十分有用;
- @Value
- @Builder用在类、构造器、方法上,为你提供复杂的builder APIs;
- @Getter(lazy=true) 懒加载,自动生成Double Check Lock样板代码;
- @Log:根据不同的注解生成不同类型的log对象,但是实例名称都是log