1、Lombok介绍
Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。比如使用@Data就可以替换数百行代码从而产生干净,简洁且易于维护的Java类。
2、Lombok的使用
- 引入相应的maven包
<denpendency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>
Lombok的scope=provided,说明它只在编译阶段生效,不需要打入包中。事实正式如此,Lombok在编译期将带Lombok注解的Java文件正确编译为完整的Class文件。
- 添加IDEA工具对Lombok的支持
点击File--->Settings--->Plugins--->Browse repositories,安装Lombok插件;
点击File--->Settings ,开启AnnocationProcessors;
开启该项是为了让Lombok注解在编译阶段起到作用。
3、Lombok注解
- @Getter/@Setter:作用类上,生成所有成员变量的getter/setter方法;作用在成员变量上,生成该成员变量的getter/setter方法。可以设定访问权限以及是否懒加载等。
- @ToString:作用于类,覆盖默认的toString()方法,可以通过of属性限定显示某些字段,通过exclude属性排除某些字段。
- @EqualsAndHashCode:作用于类,覆盖默认的equals和hashCode。
- @NonNull:主要作用于成员变量和参数中,标识不能为空,否则抛出空指针异常。
- @NoArgsConstructor:注解在类,生成无参的构造方法。
- @RequiredArgsConstructor:注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。
- @AllArgsConstructor:注解在类,生成包含类中所有字段的构造方法。
- @Data:作用于类上,是@ToString @EqualsAndHashCode @Getter @Setter @RequiredArgsConstructor的集合,生成setter/getter、equals、canEqual、hashCode、toString方法,如果为final属性,则不会为该属性生成setter方法。
- @Log:作用在类上,生成日志变量。针对不同的日志实现产品,有不同的注解。