lombok核心是通过注解自动生成getter/setter/构造器/tostring等模板代码,需在pom.xml中添加lombok依赖并设optional=true,同时ide需安装对应插件并启用注解处理。

在 Java 实体类中使用 Lombok,核心是通过注解自动生成 getter、setter、构造器、toString 等模板代码,避免手动编写冗余逻辑。关键前提是正确引入依赖并启用注解处理器。
添加 Lombok 依赖
以 Maven 为例,在 pom.xml 中加入:
注意:optional = true 表示该依赖只在编译期生效,不打包进最终 jar;IDE 需额外安装 Lombok 插件(如 IntelliJ 的 Lombok Plugin),否则无法识别注解和自动补全。
常用注解及典型用法
一个标准的实体类通常只需几个注解即可覆盖大部分需求:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- @Data:最常用,等价于 @Getter + @Setter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor(对 final 字段生成构造器)
- @NoArgsConstructor:显式添加无参构造器(JPA/Hibernate/JSON 反序列化常需)
- @AllArgsConstructor:生成含所有字段的全参构造器(适合不可变对象设计)
-
@Builder:启用构建者模式,支持链式创建对象,例如
User.builder().name("Tom").age(25).build()
示例:
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class User {
private Long id;
private String name;
private Integer age;
}
控制生成行为(按需定制)
Lombok 支持细粒度控制,避免“一刀切”:
- 排除某个字段的 getter/setter:在字段上加 @Getter(onMethod_ = {@JsonIgnore}) 或直接用 @Getter(AccessLevel.NONE)
- 为特定字段生成仅 getter:加 @Getter 到字段上,同时类级用 @Data(它不会覆盖字段级注解)
- 忽略 toString 中的敏感字段:用 @ToString.Exclude 标记密码等字段
- 指定 equals/hashCode 计算字段:用 @EqualsAndHashCode(onlyExplicitlyIncluded = true) + 字段上加 @EqualsAndHashCode.Include
注意事项与常见问题
使用过程中需留意几点:
- 反编译查看字节码可验证 Lombok 是否生效(如用 jclasslib 或 IDEA 自带反编译器)
- IDE 必须开启 annotation processing(IntelliJ:Settings → Build → Compiler → Annotation Processors → 勾选 Enable annotation processing)
- Lombok 不影响运行时行为,所有方法都在编译期注入,因此调试时看不到源码中的方法定义,但调用完全正常
- 与 IDE 插件版本不匹配可能导致红标(如提示“cannot resolve symbol”),此时更新插件或重启 IDE 即可
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










