精弘网络 Java 后端微课 - EP1.5 巧用 Lombok 简化样板代码

450 字
2 分钟
精弘网络 Java 后端微课 - EP1.5 巧用 Lombok 简化样板代码

导入 Lombok#

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.38</version>
<scope>provided</scope>
</dependency>

原理简析#

Java 的编译过程可以分成三个阶段:

  1. 把所有源文件解析成语法树
  2. 调用注解处理器,如果产生了新的源文件则再次编译
  3. 分析语法树并转化成类文件

Lombok 会在上述的第二阶段,执行 lombok.core.AnnotationProcessor,它所做的工作就是修改语法树,并将注解对应需要生成的内容全部添加到类文件中。

这样,我们即使没有在源代码中编写的内容,也会存在于生成出来的 class 文件中。

常用注解#

@Getter 和 @Setter#

可以打在字段或者类上,作用是生成对应的 get 和 set 方法。

注意布尔值的命名规则:

@Getter
public class User {
private boolean bar; // isBar()
private boolean isBar; // isBar()
private Boolean foo; // getFoo()
private Boolean isFoo; // getIsFoo()
}

构造函数相关#

  • @AllArgsConstructor 生成全参构造函数
  • @NoArgsConstructor 生成无参构造函数
  • @RequiredArgsConstructor 生成需要初始化的参数的构造函数

@ToString#

自动生成类的 toString 方法,默认输出类名和所有字段名和值。

@EqualsAndHashCode#

自动生成类属性的比较方法以及对应的 HashCode 计算

Account a1 = new Account(1, "小明", 18);
Account a2 = new Account(1, "小明", 18);
log.info(a1.equals(a2));

@Data#

集大成者,包含了 @Getter@Setter@ToString@EqualsAndHashCode@RequiredArgsConstructor

@Builder#

生成 Builder 模式的代码,用于创建对象。

@Slf4j#

Simple Logging Facade for Java(简称 SLF4J) 是一个 Java 日志门面(facade)库,其主要作用是为各种日志框架提供统一的日志 API 接口

Spring Boot 默认使用 slf4j-api 作为日志 API,logback-classic 作为默认实现

Lombok 的 @Slf4j 注解会自动生成一个 SLF4J 日志对象,其等效于

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(class);

拓展阅读#

Lombok 官方文档

柏码知识库 - Lombok 极速上手

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

精弘网络 Java 后端微课 - EP1.5 巧用 Lombok 简化样板代码
https://blog.sugarmgp.cn/posts/summer-lessons-ep15/
作者
SugarMGP
发布于
2025-08-04
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
SugarMGP
大二学生
站点统计
文章
15
分类
4
标签
29
总字数
11,620
运行时长
0
最后活动
0 天前

文章目录