一、安装与配置
1. 添加依赖
Maven 项目:在
pom.xml
中添加依赖:<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> <!-- 使用最新版本 --> <scope>provided</scope> </dependency>
2. IDE 插件安装
- IntelliJ IDEA:安装插件
Lombok
,并启用注解处理:Settings > Build > Compiler > Annotation Processors > Enable annotation processing
- Eclipse:下载 lombok.jar,运行安装并指定 Eclipse 路径。
二、常用注解详解
1. @Getter / @Setter
- 作用:自动生成字段的 getter 和 setter 方法。
示例:
@Getter @Setter public class User { private String name; private int age; }
扩展:控制访问级别或排除字段:
@Setter(AccessLevel.PROTECTED) // 设置 protected setter private String password;
2. @ToString
- 作用:生成
toString()
方法。 参数:
exclude
:排除字段。callSuper
:是否包含父类字段。
@ToString(exclude = "password", callSuper = true) public class User extends BaseEntity { ... }
3. @EqualsAndHashCode
- 作用:生成
equals()
和hashCode()
方法。 - 注意:避免在 JPA 实体中使用默认实现(可能影响关联对象)。
4. 构造方法注解
- @NoArgsConstructor:生成无参构造方法。
- @AllArgsConstructor:生成全参构造方法。
@RequiredArgsConstructor:生成包含
final
或@NonNull
字段的构造方法。@RequiredArgsConstructor public class User { private final Long id; @NonNull private String name; }
5. @Data
- 组合注解:包含
@Getter
,@Setter
,@ToString
,@EqualsAndHashCode
,@RequiredArgsConstructor
。 适用场景:简单 POJO 类。
@Data public class Product { private Long id; private String name; }
6. @Builder
- 作用:提供建造者模式支持。
用法:
@Builder public class Order { private Long id; private String item; } // 使用示例 Order order = Order.builder().id(1L).item("Book").build();
- 继承处理:若父类需 Builder,使用
@SuperBuilder
。
7. @Slf4j
作用:自动生成日志对象
log
。@Slf4j public class Service { public void process() { log.info("Processing..."); } }
8. @Value
作用:生成不可变类(所有字段为
final
)。@Value public class ImmutablePoint { int x; int y; }
9. @NonNull
作用:自动生成非空检查。
public void setName(@NonNull String name) { this.name = name; }
10. @Cleanup
作用:自动关闭资源(如 IO 流)。
public void copyFile(String src, String dest) throws IOException { @Cleanup InputStream in = new FileInputStream(src); @Cleanup OutputStream out = new FileOutputStream(dest); // 自动调用 in.close() 和 out.close() }
三、高级配置
1. 全局配置(lombok.config)
在项目根目录创建
lombok.config
文件,设置如:lombok.addLombokGeneratedAnnotation = true # 标记生成代码 lombok.extern.findbugs.addSuppressFBWarnings = true
2. 自定义日志框架
- 使用
@Log4j2
、@CommonsLog
等适配不同日志框架。
四、注意事项
- JPA 实体类:慎用
@Data
和@ToString
,避免触发延迟加载异常。推荐手动实现equals
/hashCode
或排除关联字段。 - 继承问题:子类使用
@Builder
时需配合@SuperBuilder
。 - 代码可读性:过度使用 Lombok 可能降低代码透明度,需团队共识。
- 版本兼容性:确保 Lombok 版本与 JDK 和 IDE 兼容(如 JDK 17+需 Lombok 1.18.24+)。
评论 (0)