在 Java 开发中,手写 getter/settertoString构造器 等样板代码是每个开发者都绕不开的事 —— 代码冗长、重复且毫无技术含量。而 Lombok 正是解决这个痛点的神器:通过简单的注解,就能自动生成这些重复代码,让实体类开发效率翻倍。本文结合实战教学场景,手把手教你搞定 Lombok 的安装、配置与核心使用。

一、为什么要用 Lombok?

先看一个直观对比:

  • 不用 Lombok:一个简单的 User 实体类,需要手写 20+ 行 get/set/ 构造器代码;
  • 用 Lombok:仅需 2-3 个注解,就能实现相同功能,代码量减少 80%。

Lombok 核心价值:

  1. 消除冗余代码,让实体类更简洁;
  2. 减少手动编写错误(比如漏写某个属性的 set 方法);
  3. 适配 SpringBoot 生态,是企业开发的标配工具。

二、第一步:项目中引入 Lombok 依赖

使用 Lombok 的前提是必须引入依赖(这是核心前提,少了这一步注解完全无效),以下是主流构建工具的配置方式:

1. Maven 项目(pom.xml)

<!-- Lombok 依赖 -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.30</version> <!-- 建议使用稳定版,与SpringBoot兼容 -->
    <scope>provided</scope> <!-- 编译时生效,无需打包到最终jar -->
</dependency>

2. Gradle 项目(build.gradle)

dependencies {
    compileOnly 'org.projectlombok:lombok:1.18.30'
    annotationProcessor 'org.projectlombok:lombok:1.18.30'
}

注意:SpringBoot 父工程已内置 Lombok 版本管理,也可直接省略 version 标签,使用默认兼容版本。

三、第二步:IDE 开启注解处理

很多同学遇到 “注解加了但方法不生效” 的问题,大概率是 IDE 未开启注解处理器。以 IntelliJ IDEA 为例:

操作步骤

  1. 打开 IDEA 设置:File → Settings(Windows/Linux)或 IntelliJ IDEA → Settings(Mac);
  2. 依次展开:Build, Execution, Deployment → Compiler → Annotation Processors
  3. 勾选 Enable annotation processing(开启注解处理);
  4. 点击 Apply → OK,重启 IDEA 生效。

补充:如果仍不生效,建议安装 IDEA 插件市场的「Lombok」插件(Settings → Plugins → 搜索 Lombok → 安装)。

四、第三步:Lombok 核心注解实战

User 实体类为例,讲解最常用的 Lombok 注解,也是教学中重点强调的核心内容。

1. 基础注解:@Getter / @Setter / @ToString

单独为属性生成 get/set 方法或重写 toString 方法:

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

// 为所有属性生成get方法
@Getter
// 为所有属性生成set方法
@Setter
// 重写toString方法,打印对象属性
@ToString
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

测试调用

public class UserTest {
    public static void main(String[] args) {
        User user = new User();
        // 调用Lombok自动生成的set方法
        user.setId(1L);
        user.setName("张三");
        user.setAge(25);
        
        // 调用Lombok自动生成的get方法
        System.out.println("用户名:" + user.getName());
        // 调用Lombok自动生成的toString方法
        System.out.println(user);
    }
}

输出结果

用户名:张三
User(id=1, name=张三, age=25, email=null)

2. 万能注解:@Data(推荐)

@Data 是组合注解,一次性包含 @Getter@Setter@ToString@EqualsAndHashCode@RequiredArgsConstructor 功能,是实体类的 “一站式解决方案”。

import lombok.Data;

// 替代所有基础注解,自动生成核心方法
@Data
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

3. 构造器注解

教学中重点强调了构造器的自动生成,解决手动写构造器的麻烦:

  • @NoArgsConstructor:生成无参构造器;
  • @AllArgsConstructor:生成包含所有属性的全参构造器;
  • @RequiredArgsConstructor:生成包含 “final 或 @NonNull 属性” 的构造器(按需使用)。

实战示例

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

// 核心方法 + 无参构造 + 全参构造
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

测试构造器

public class UserTest {
    public static void main(String[] args) {
        // 无参构造(@NoArgsConstructor)
        User user1 = new User();
        user1.setName("李四");
        
        // 全参构造(@AllArgsConstructor)
        User user2 = new User(2L, "王五", 30, "wangwu@example.com");
        
        System.out.println(user1);
        System.out.println(user2);
    }
}

输出结果

User(id=null, name=李四, age=null, email=null)
User(id=2, name=王五, age=30, email=wangwu@example.com)

五、常见问题与解决方案

教学中老师也遇到了 “注解生效异常” 的问题,这里整理高频坑点:

问题现象原因解决方案
调用 get/set 方法报错未引入 Lombok 依赖检查 pom.xml/build.gradle 依赖是否配置正确
注解标红 / 无提示IDE 未安装 Lombok 插件插件市场安装 Lombok 插件
注解存在但方法不生效未开启注解处理器勾选 Enable annotation processing
编译报错 “找不到构造器”未加对应的构造器注解补充 @NoArgsConstructor / @AllArgsConstructor

六、总结

  1. Lombok 是 SpringBoot 开发的必备工具,核心是通过注解替代重复的样板代码;
  2. 核心使用流程:引入依赖 → IDE 开启注解处理 → 实体类加注解(推荐 @Data + @NoArgsConstructor);
  3. 优先使用 @Data 注解,搭配构造器注解,能满足 90% 的实体类开发需求。
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐