首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Spring Boot 之 Lombok 使用详解

Spring Boot 之 Lombok 使用详解

作者头像
艾伦耶格尔
发布2025-08-28 14:47:13
发布2025-08-28 14:47:13
23200
代码可运行
举报
文章被收录于专栏:Java基础Java基础
运行总次数:0
代码可运行

Lombok 是一个 Java 库,它通过注解自动生成样板代码,例如 getter、setter、构造函数、equals()、hashCode() 等,从而减少代码冗余,提高开发效率。在 Spring Boot 项目中使用 Lombok 可以使代码更加简洁易读。

本文将详细介绍 Lombok 在 Spring Boot 中的使用。

1. 添加 Lombok 依赖:

在你的 pom.xml 文件中添加以下依赖:

代码语言:javascript
代码运行次数:0
运行
复制
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

optional 设置为 true 表示该依赖是可选的,不会传递到依赖项目中,避免冲突。

2. 安装 Lombok 插件 (IDE 支持):

为了使 IDE 能够正确识别 Lombok 生成的代码,需要安装 Lombok 插件。以 IntelliJ IDEA 为例,可以在 Settings/Preferences -> Plugins 中搜索 "Lombok" 并安装。(图标是一个红色的辣椒)安装后记得重启IDEA生效!

f22b6d07c1d1442d9a3ad96090e89525.png
f22b6d07c1d1442d9a3ad96090e89525.png

3. 常用注解:

Lombok 提供了丰富的注解,以下是一些常用的注解及其使用方法:

@Data: 这是一个组合注解,相当于 @Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor 的组合。它会生成所有字段的 getter 和 setter 方法,toString()、equals() 和 hashCode() 方法,以及一个包含 final 字段和非空字段的构造函数。

代码语言:javascript
代码运行次数:0
运行
复制
import lombok.Data;

@Data
public class User {
    private Long id;
    private String name;
    private String email;
}

@Getter 和 @Setter: 分别生成 getter 和 setter 方法。可以作用于类或字段。

代码语言:javascript
代码运行次数:0
运行
复制
import lombok.Getter;
import lombok.Setter;

public class Product {
    @Getter @Setter
    private Long id;

    @Getter
    private String name;

    @Setter
    private double price;
}

@ToString: 生成 toString() 方法,可以自定义输出格式。

代码语言:javascript
代码运行次数:0
运行
复制
import lombok.ToString;

@ToString(exclude = {"password"}) // 排除 password 字段
public class User {
    private String username;
    private String password;
    private String email;
}

@EqualsAndHashCode: 生成 equals() 和 hashCode() 方法。可以指定参与比较的字段。

代码语言:javascript
代码运行次数:0
运行
复制
import lombok.EqualsAndHashCode;

@EqualsAndHashCode(of = {"id", "name"}) // 只比较 id 和 name 字段
public class Product {
    private Long id;
    private String name;
    private double price;
}

@NoArgsConstructor: 生成无参构造函数。

代码语言:javascript
代码运行次数:0
运行
复制
import lombok.NoArgsConstructor;

@NoArgsConstructor
public class Order {
    private Long id;
    private String orderNumber;
}

@AllArgsConstructor: 生成包含所有字段的构造函数。

代码语言:javascript
代码运行次数:0
运行
复制
import lombok.AllArgsConstructor;

@AllArgsConstructor
public class Item {
    private Long id;
    private String name;
    private int quantity;
}

@Builder: 生成 builder 模式代码,方便创建对象。这个还是比较好用的

代码语言:javascript
代码运行次数:0
运行
复制
import lombok.Builder;

@Builder
public class Address {
    private String street;
    private String city;
    private String zipCode;

    public static void main(String[] args) {
        Address address = Address.builder()
                .street("123 Main St")
                .city("Anytown")
                .zipCode("12345")
                .build();

        System.out.println(address);
    }
}

@Slf4j: 生成一个名为 log 的日志对象,可以直接使用 log.info() 等方法输出日志。 (需要添加 slf4j 依赖)

代码语言:javascript
代码运行次数:0
运行
复制
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class LogExample {
    public static void main(String[] args) {
        log.info("Hello, Lombok!");
    }
}

4. 在 Spring Boot 中使用 Lombok:

在实体类、控制器、服务等组件中都可以使用 Lombok 注解。

示例:创建一个 User 实体类:

代码语言:javascript
代码运行次数:0
运行
复制
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String email;
}

5. 总结:

Lombok 可以显著减少样板代码,提高开发效率。通过使用 Lombok 注解,可以使代码更加简洁易读,并减少出错的可能性。

额外提示:

  • 可以根据需要组合使用不同的 Lombok 注解。
  • 可以使用 @Accessors 注解自定义 getter 和 setter 方法的命名方式。
  • 可以使用 @SneakyThrows 注解简化异常处理。

希望这个上文能够帮助各位看官更好地理解和使用 Lombok! 记住要安装 IDE 插件才能使你的 IDE 正确识别 Lombok 生成的代码。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档