Lombok
Lombok
编译期注解处理器,自动生成重复代码
安装
添加依赖
1
2
3
4
5
6<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>provided</scope> <!-- 不打包进jar -->
</dependency>下载IDEA中的Lombok插件
Lombok是在编译时生成代码,编辑器IDEA这时还看不到,会报错,因此需要这个插件
使用
| 注解 | 功能 | 位置 |
|---|---|---|
@Data |
生成 getter、setter、toString、equals、hashCode、无参构造 | 类上 |
@Getter |
生成 getter 方法 | 类上 / 字段上 |
@Setter |
生成 setter 方法 | 类上 / 字段上 |
@ToString |
生成 toString () 方法 | 类上 |
@EqualsAndHashCode |
生成 equals () 和 hashCode () | 类上 |
@NoArgsConstructor |
生成无参构造方法 | 类上 |
@AllArgsConstructor |
生成全参构造方法 | 类上 |
@RequiredArgsConstructor |
生成 final / @NonNull 字段的构造方法 | 类上 |
@Builder |
生成链式建造者模式 | 类上 |
@Slf4j |
自动生成日志对象 log |
类上 |
@NonNull |
非空校验,传 null 抛异常 | 方法参数 / 字段 |
@Cleanup |
自动关闭流 / 资源 | 变量上 |
@Accessors(chain = true) |
让 setter 方法返回 this |
类上 |
@Accessors(fluent = true) |
让getter/setter不带 get/set 前缀 | 类上 |
原理
在 Java 编译(.java → .class)的过程中,修改了抽象语法树(AST),把 getter/setter/toString 等代码直接加进去,生成新的 class 文件
1 | |
Lombok
http://xwww12.github.io/2026/06/02/后端/Lombok/