Lombok概述
-
Lombok简介
Lombok是一种Java实用工具,可以来帮助开发人员消除Java的冗长,如POJO的getter、setter、toString、hashCode;异常处理;I/O流的关闭操作等,这些样板代码既没有技术含量,又影响着代码的美观,Lombok应运而生。在使用Lombok之后,将由其来自动帮你实现代码生成,注意,其是在运行过程中,帮你自动生成的,就是说极大减少你的代码总量
-
Lombok作用
1. 消除模板代码。 2. getter、setter、构造器、toString()、equals() 3. 便捷的生成比较复杂的代码,例如一个POJO要转化成构建器模式的形式,只需要一个注解
SpringBoot中使用lombok
- 添加依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
- 编写一个实体类User,使用@Data注解
@Data
public class Person {
private String name;
private int age;
private String sex;
}
- 编写测试方法,测试@Data的作用
- 结果
不使用Lombok的情况
不使用lombok的话,你就得自己添加这些getter/setter/toString等代码
Lombok的注解介绍
POJO类常用注解:
1. @Getter/@Setter:作用于类上,生成所有成员变量的getter/settert方法;作用于成员变量上,生成该成员变量的getter/setter方法。可以设定访问权限以及是否懒加载
2. @ToString:作用于类,覆盖默认的toString()方法,可以通过of属性限定显示某些字段,通过exclude属性排除某些字段
3. @EqualsAndHashCode:作用于类,覆盖默认的equals和hashCode
4. @NonNull:主要作用于成员变量和参数中,标识不能为空,否则抛出空指针异常
5. @NoArgsconstruct:生成无参构造器
6. @RequiredArgsConstructor:生成包含final和@NonNull注解的成员变量的构造器
7. @AllArgsConstructor:生成全参构造器
8. @Data:作用于类上,是以下注解的集合:@ToString、@EqualsAndHashCode、@Getter、@Setter、@RequiredArgsConstructor
9. @Builder:作用于类上,将类转变为建造者模式
10. @Log:作用于类上,生成日志变量
11. @Cleanup:自动关闭资源,针对实现了java.io.Closeable接口的对象有效,如:典型的IO流对象
12. @SneakyThrows:可以对受检异常进行捕捉并抛出
推荐使用技巧
- 在Bean/实体类上使用@Data注解
- 需要使用 Log 对象的地方使用 @Log4j(依项目日志框架决定)。
- 注意:lombok 的注解不能被继承。
IDEA中使用lombok
如果想让lombok生效我们还需要针对idea工具进行插件的安装,下面我们按照顺序打开Idea配置
File > Settings > Plugins > Browse repositories... > 输入lombok,插件就会被自动检索出来,如下图所示: