一、lombok概述
Lombok想要解决了的是在我们实体Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写,以期方便使用的方法;在使用Lombok之后,将由其来自动帮你实现代码生成,注意,其是 在运行过程中,帮你自动生成的 。就是说,将极大减少你的代码总量。
作用:
- 为Java POJO生成属性对应的getter,setter等
- 为Java POJO生成builder构造器模式的实现
- 为Java类自动添加其他重复性代码,比如日志记录的声明代码可以通过@Slf4j注解添加
二、使用过lombok
1. 添加依赖
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.10</version> </dependency>
2. Idea安装lombok插件
如果想让lombok生效我们还需要针对idea工具进行插件的安装。
3. 编写一个实体类 User,使用@Data注解
@Data
public class User {
private String name;
private int age;
}
注意:lombok 的注解不能被继承。
4. lombok的注解介绍
- @NonNull : 让你不在担忧并且爱上NullPointerException
- @CleanUp : 自动资源管理:不用再在finally中添加资源的close方法
- @Setter/@Getter : 自动生成set和get方法
- @ToString : 自动生成toString方法
- @EqualsAndHashcode : 从对象的字段中生成hashCode和equals的实现
- @NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor:自动生成构造方法
- @Data : 自动生成set/get方法,toString方法,equals方法,hashCode方法,不带参数的构造方法
- @Value : 用于注解final类
- @Builder : 产生复杂的构建器api类
- @SneakyThrows : 异常处理(谨慎使用)
- @Synchronized : 同步方法安全的转化。
- @Getter(lazy=true) :懒加载。如果Bean的一个字段的初始化是代价比较高的操作,比如加载大量的数据;同时这个字段并不是必定使用的。那么使用懒加载机制,可以保证节省资源。懒加载机制,是对象初始化时,该字段并不会真正的初始化;而是第一次访问该字段时才进行初始化字段的操作。
- @Log : 支持各种logger对象,使用时用对应的注解,如:@Log4j
5. 常用注解
(1) @EqualsAndHashCode,@ToString
告诉Lombok来生成 equals, hashCode方法,toString方法在生成这些方法的时候lombok会使用所有的成员变量。
(2) @AllArgsConstructor
会自动创建一个包括所有成员的构造器。
(3) @Getter/@Setter
注解会为每一个标记的成员变量自动生成对应的方法。
(4) @Buidler
实例化这个类。
@EqualsAndHashCode @ToString @AllArgsConstructor @Setter @Getter @Builder public class Student { private String stuName; private Integer stuAge; private String stuClass; private Integer stuNumber; }
可以这样实例化:
Student student = Student.builder() .stuName("张三") .stuAge(12) .stuClass("高三") .stuNumber(12222) .build(); System.out.println(student);
(5) @Data
简单的来说所有所有的注解我们都可以使用一个注解完成,也就是@Data。
我们在定义类的时候 只需要加一个 @Data 注解,其他的注解我们都不需要在添加就可以达到前面所说的所有功能。