⬆︎
×

Lombok注解库基本教程与疑难解析

Lombok是一个极为强大的Java注解库,帮助开发者减少样板代码的编写,如getter/setter、构造方法、equals()hashCode()等方法。Lombok在编译时自动生成这些代码,使Java代码更加简洁、易读。

1 Lombok概述

Lombok存在如下优缺点:

  • 优点:
    1. 减少样板代码:自动生成gettersetter等方法,减少代码量
    2. 提高可读性:代码更加简洁,关注业务逻辑而非样板代码
    3. 减少错误:自动生成的方法不容易出错
    4. 易于维护:添加新字段时,相关方法会自动更新
    5. 支持链式调用:@Accessors(chain = true)支持链式调用
    6. 提高开发效率:减少重复编写样板代码的时间
  • 缺点
    1. IDE支持问题:某些IDE可能需要安装插件才能正确识别Lombok生成的代码
    2. 学习成本:需要学习Lombok的注解和用法
    3. 编译时生成:代码在编译时生成,可能影响编译速度
    4. 调试困难:生成的代码不在源代码中,调试时可能不太直观
    5. 版本兼容性:不同版本的Lombok可能有兼容性问题
    6. 可能隐藏问题:自动生成的方法可能掩盖一些设计问题

2 导入与配置

以Maven为例,在pom.xml中添加以下依赖(其中版本号lombok.version事先在<properties>中定义):

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>${lombok.version}</version>
    <scope>provided</scope>
</dependency>

若使用IDE(如IntelliJ IDEA),需安装Lombok插件并启用注解处理,流程如下:

  1. 安装、启用插件:进入IDE设置的插件市场(File > Settings > Plugins),搜索“Lombok”并安装,重启IDE后插件启用。
  2. 启用注解处理:打开IDE设置中的注解处理器(File > Settings > Build, Execution, Deployment > Compiler > Annotation Processors),勾选“Enable annotation processing”,并选择“Obtain processors from project classpath”

3 主要注解

Lombok全部注解如下表所示:

注解 功能描述
@Data 生成所有字段的getter/settertoString()equals()hashCode()方法,以及无参构造方法
@Getter 生成所有字段的getter方法
@Setter 生成所有字段的setter方法
@NoArgsConstructor 生成无参构造方法
@AllArgsConstructor 生成全参数构造方法
@Builder 生成建造者模式
@Slf4j 自动生成日志对象(log
@EqualsAndHashCode 生成equals()hashCode()方法
@ToString 生成toString()方法
@RequiredArgsConstructor 生成包含所有标记为@NonNullfinal字段的构造方法
@Value 生成不可变类(所有字段均为private final
@SneakyThrows 自动处理受检异常
@Accessors 控制生成的访问器(getter/setter)的行为
@Builder.Default @Builder生成的建造者设置默认值
@SuperBuilder 处理继承关系中的建造者模式
@NonNull 标记字段或参数不能为null
@Cleanup 自动关闭资源
@Generated 标记生成的代码
@UtilityClass 生成工具类
@Experimental 标记实验性功能
@Lombok 自定义注解
@FieldNameConstants 生成字段名称常量
@With 生成不可变对象的with方法
@Log 生成日志对象(通用)
@CommonsLog 生成Apache Commons Logging日志对象
@Flogger 生成Google Flogger日志对象
@JBossLog 生成JBoss日志对象
@Log4j 生成Log4j日志对象
@Log4j2 生成Log4j2日志对象
@XSlf4j 生成SLF4J扩展日志对象

4 应用案例

MyBatis基本操作教程-初见lombok工具包

Spring Boot+SSM单体项目开发全流程详解(神威食客 - Hyplus Foodie)


5 常见问题

java: 找不到符号 符号: 变量 log 位置: 类....”问题:导包失败或未启用注解处理,请重复导入与配置流程。

《Lombok注解库基本教程与疑难解析》有1条评论

发表评论