Lombok 是一个非常流行的 Java 库,它通过注解简化 Java 类的开发,特别是在处理 POJO(Plain Old Java Objects)类时,如生成 getter、setter、toString 等常用方法。Lombok 在减少样板代码(boilerplate code)方面非常有用。在 IntelliJ IDEA 中使用 Lombok 插件,可以极大简化开发过程。
1. 安装 Lombok 插件
要在 IntelliJ IDEA 中使用 Lombok,首先需要安装 Lombok 插件:
- 步骤:
- 打开 IntelliJ IDEA,点击
File>Settings(或者快捷键Ctrl + Alt + S)。 - 在设置窗口中,选择左侧的
Plugins,然后在右上角的搜索框中输入Lombok。 - 找到
Lombok插件,点击Install。 - 安装完成后,重新启动 IntelliJ IDEA 以使插件生效。
- 打开 IntelliJ IDEA,点击
2. 在 pom.xml 中引入 Lombok 依赖
安装完插件后,你还需要在项目的 pom.xml 中引入 Lombok 的 Maven 依赖:
步骤:
- 打开
pom.xml文件。 - 在
<dependencies>节点中添加以下内容:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version> <!-- 检查 Lombok 最新版本 -->
<scope>provided</scope>
</dependency>
3.同步 Maven 项目,IntelliJ IDEA 会自动下载依赖。
注意!注意! 如果是在创建项目时通过Spring Starter引入的lombok依赖,一定要记得在pom.xml中进行修改下面的内容,加上版本号,不然项目编译都不通过
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.36</version> </path> </annotationProcessorPaths> </configuration> </plugin>
3. 配置 IDEA 支持 Lombok 注解处理器
为了确保 Lombok 正常工作,你需要在 IntelliJ IDEA 中开启注解处理器。
- 步骤:
- 点击
File>Settings,在设置窗口中选择Build, Execution, Deployment>Compiler>Annotation Processors。 - 勾选
Enable annotation processing选项。 - 点击
Apply并确认。
- 点击
4. 使用 Lombok 注解
- 如果只想要
getter和setter👉@Getter+@Setter- 如果想要
toString()、equals()👉@Data- 如果 DTO/VO 只读 👉 只用
@Getter
现在你可以在代码中使用 Lombok 提供的注解来简化代码。例如:
4.1@Getter 和 @Setter
自动生成 getter 和 setter 方法。
import lombok.Getter;
import lombok.Setter;
public class User {
@Getter @Setter
private String name;
@Getter @Setter
private int age;
}
当在类上使用@Getter 和 @Setter时,Lombok 会在编译时 自动为所有字段生成
getter和setter方法
4.2@ToString
自动生成 toString() 方法。
import lombok.ToString;
@ToString
public class User {
private String name;
private int age;
}
4.3@NoArgsConstructor 和 @AllArgsConstructor
自动生成无参和全参构造函数。
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
@NoArgsConstructor
@AllArgsConstructor
public class User {
private String name;
private int age;
}
4.4@Data
自动生成 getter、setter、toString、hashCode、equals 方法,还可以生成无参构造函数。
import lombok.Data;
@Data
public class User {
private String name;
private int age;
}
4.5 @Builder
用于实现 Builder 模式,它允许你一步步地构建一个对象,而不是通过构造函数一次性设置所有字段。
import lombok.Builder;
@Builder
public class User {
private String name;
private int age;
}
- 使用方式:
User user = User.builder().name("John").age(25).build(); @Builder使得你可以使用流式 API 来创建对象。它在创建复杂对象时非常有用,特别是那些拥有很多字段的对象。
Lombok 的
@Builder注解允许你使用流式 API来创建对象,而不需要手动编写构造函数。主要特点:
- 无需一次性传递所有成员变量:你可以根据需要只设置部分成员变量,而不需要为每个参数创建多个构造函数。
- 无需手动编写构造函数:Lombok 会自动生成一个带有所有成员变量的
Builder类来代替构造函数。使用方式:
- 使用
@Builder注解后,你可以通过User.builder()创建一个UserBuilder对象,然后链式调用设置各个属性,最后通过.build()方法生成最终对象。- 你可以只赋值部分变量,其他变量会保留默认值。
4.6 @Value
- 作用:为不可变类生成代码(类似
final的效果)。所有字段都将是private final,并且会自动生成getter、toString()、equals()、hashCode()和全参构造函数。
import lombok.Value;
@Value
public class User {
private String name;
private int age;
}
@Value会自动把类的字段设为final,并且不会生成setter方法,以确保对象的不可变性。

1021

被折叠的 条评论
为什么被折叠?



