Lombok

Lombok

编译期注解处理器,自动生成重复代码

安装

  1. 添加依赖

    1
    2
    3
    4
    5
    6
    <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.30</version>
    <scope>provided</scope> <!-- 不打包进jar -->
    </dependency>
  2. 下载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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.java 源码(带 @Data @Slf4j)

【编译器启动】

【Lombok 注解处理器介入】

解析注解 → 找到 @Data @Getter

【修改 AST(抽象语法树)】
→ 给类加上 getter/setter/toString...

生成新的语法树

编译器继续编译

.class 文件(已经包含生成好的方法)

Lombok
http://xwww12.github.io/2026/06/02/后端/Lombok/
作者
xw
发布于
2026年6月2日
许可协议