Spring boot Lombok

本文介绍了Spring Boot中Lombok的使用,包括Lombok的基本概念、安装方法、依赖配置,以及常用的注解如@UtilityClass、@Slf4j、@NonNull、@Cleanup、@SneakyThrows、@val和@var的示例。通过使用Lombok,可以简化Java代码,避免编写getter、setter等模板代码,提高开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring boot Lombok

上一节 Spring boot 参数校验

Spring boot 参数校验

源码

springboot学习指南


简介

lombok 并不是spring 或者springboot的 ;这里写这一章节主要是为了后续代码中会经常用到,所以在此简单介绍和使用下。

lombok 是为了简化代码开发, 避免编写相对不太注重的代码,例如get set等;让代码更简洁;
不过 lombok 也有很大的争议,不过使用上很简单,学习也不费劲。看自己是否需求选择使用。

idea 安装

直接在 设置中搜索 lombok安装重启即可
官网教程
在这里插入图片描述

eclipse 安装

官网教程

使用添加依赖

依赖
version 在springboot 2.x版本后可以不写,springboot 也管理了他的版本

 <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

常用注解

注解 说明 备注
@UtilityClass 标注在类上,类会标记为final,生成一个私有构造器,该类中的所有方法,内部类,以及字段都会标记为静态 工具类标注
@Slf4j 标注在类上,可以使用log 进行日志输出,同理还有@Log4j ,@log4j2 等支持不同的日志框架 日志打印
@Data 标注了 @Data的类,会生成getter ,setter, 方法以及无参构造器,全部参数构造器, tostring方法,equal和 hashCode方法 实体bean的常用方法
@Getter 修饰类或者字段,生成getter方法 getter
@Setter 修饰类或者字段,生成setter方法 setter
@Accessors 修饰类或者字段,配置@setter或者@Data使用,并且可定制化方法的前缀,以及chain=true设置为链调用 当链式调用set方法的时候比较适用
@EqualsAndHashCode 修饰类,生成equals 和hashcode方法
@AllArgsConstructor 修饰类,生成所有参构造器
@NoArgsConstructor 修饰类,生成无参构造器
@RequiredArgsConstructor 修饰类, 生成无参和所有参构造器
@ToString 修饰类,生成tostring 方法
@NonNull 检测参数是否为空,抛出NullPointerException null校验
@Cleanup 修饰局部变量,清除资源,默认调用资源的close方法 清除资源使用
@SneakyThrows 修饰方法,抛出异常
@Synchronized 修饰方法,方法会自动被synchronized修饰 用处不大
@val 修饰局部变量,变量会变成不可从新赋值,和final作用一致
@var 修饰局部变量,例如 var a = 10 ;可以自动类型推断 java11 已经实现

常用示例

@UtilityClass 和 @Slf4j 的使用

@UtitityClass 修饰类,表示这是一个工具类
@Slf4j 修饰类;表示可以使用Slf4j的日志输出,不用在代码中写 loggerFactory.getLogger… 的模板代码了

@UtilityClass
@Slf4j
public class StringUtil {
   

    public int length(String str) {
   
        log.info("str length ");
        return str.length();
    }
}

对比生成的class
对比下, 类被final 修饰,方法变为static; 并且生成私有构造器; @Slf4j 也生成了log

public final class StringUtil {
   
    private static final Logger log = LoggerFactory.getLogger(StringUtil
### 配置 Lombok 简化 Java 类编写 为了在 Spring Boot 项目中利用 Lombok 来简化 Java 类的编写,开发者需遵循特定步骤来集成此库。Lombok 能够通过简单的注解自动创建常见的样板代码,比如 `getter` 和 `setter` 方法、构造器以及 `toString()` 函数等。 #### 添加 Maven 或 Gradle 依赖项 要在 Spring Boot 工程里启用 Lombok 功能,首先应在项目的构建文件中引入相应的依赖声明。对于采用 Maven 构建工具的情况,在 `pom.xml` 文件内添加如下所示的内容: ```xml <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version><!-- 版本号应根据实际情况调整 --> <scope>provided</scope> </dependency> ``` 而对于使用 Gradle 的工程,则可以在 `build.gradle` 文件中的 dependencies 块下增加下面这行语句[^4]: ```groovy implementation 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' ``` 请注意设置 `<optional>true</optional>` 属性是为了防止当其他模块依赖当前模块时也强制安装 lombok;而 scope 设置为 provided 表明编译期间需要该 jar 包支持,但在运行期并不需要将其打包到最终产物之中。 #### 安装 IDE 插件并重启环境 完成上述操作之后,还需要确保所使用的集成开发环境中已正确安装了 Lombok 插件,并按照提示重新启动编辑器以便加载新功能。这样做的目的是让IDE能够识别由 Lombok 注解生成的方法和字段定义,进而提供更好的编码体验和支持特性,如语法高亮显示、错误检测等功能[^3]。 #### 使用 Lombok 注解优化实体类结构 一旦成功集成了 Lombok 后就可以开始应用其提供的各种实用注解来精简业务逻辑层的数据传输对象 (DTOs) 或者领域模型的设计模式。例如,可以借助 `@Data` 这一综合性较强的元数据标签快速实现包含所有常规属性访问接口在内的完整 POJO 实现方式[^1]: ```java import lombok.Data; @Data public class User { private Long id; private String name; } ``` 以上代码片段展示了怎样仅用几行简洁的文字就完成了原本较为繁琐的任务——不仅涵盖了必要的存取方法定义,还额外包含了无参/全参形式下的构造函数签名以及其他辅助性的成员函数原型说明等内容。 #### 处理与 Spring 组件扫描机制之间的兼容性问题 值得注意的是,在某些特殊场景下可能会遇到由于启用了 Lombok 所带来的潜在风险点之一便是影响到了框架内部组件实例化的流程控制逻辑。具体表现为如果过度依赖于 @AllArgsConstructor 自动生成全部参数构造器的话,那么很可能会干扰到默认情况下基于无参构造器反射调用来初始化 Bean 对象的过程。为了避免此类情况的发生建议优先考虑选用带有显式指定所需注入资源列表选项的替代方案,即 `@RequiredArgsConstructor` 结合 `@NonNull` 或者 `final` 关键字共同作用的方式来进行约束限定[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值