Java数据类(JavaBean)的注解化解决方案:@Data(Lombok实现)
1. 使用效果
2. 背景
Java数据类,即JavaBean,需要写 set、get、hashCode、toString 等方法。
常规方式存在两个问题:
- 当新增一个字段时,需要对应新增set和get方法,修改hashCode、toString方法。容易只新增了字段,没对应新增和修改函数,导致错误。比如,返回响应对应的数据类,新增了一个字段,但是没有新增set和get方法,那这个字段就会一直是空。
- 写这些方法,比较繁琐,费时费力。
3. 解决方案
Java数据类(JavaBean)的注解化解决方案。
实现原理,是通过编译器插件,在编译期,为添加了 数据类
注解的数据类,自动生成set、get等方法。
本教程通过Lombok实现,通过@Data注解标识数据类,因此也就要求Java集成开发环境需要安装Lombok插件。
4. 使用步骤
- 装插件
- 加依赖
- 加注解
4.1. 装插件
IDEA中的较高版本(从2020.3版本起),已经自动集成了Lombok,无需额外安装插件。
Eclipse及其衍生IDE(如SpringToolSuite4等),需要使用Lombok安装包,手动安装Lombok插件到Eclipse中。
安装方法参考:Lombok插件安装(Eclipse/SpringToolSuite4)(Windows和Mac)
4.2. 加依赖
pom.xml
文件中,添加依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
4.3. 加注解
使用 @Data
注解,加在数据类的定义处。
package com.example.lombok;
import lombok.Data;
@Data
public class Student {
private Integer id;
private String name;
private Integer gender;
private Integer classId;
}
5. 可选配置
如果想要在 Maven 打包的时候,Lombok 不被打包,可使用如下配置。
这个配置不写,不影响 Lombok 正常使用。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
6. 调用示例
对Java数据类的实例,调用set和get方法等,都是能够正常调用的。
package com.example.lombok;
public class Test {
public static void main(String[] args) {
Student student = new Student();
student.setId(1001);
student.setName("张三");
System.out.println("姓名:" + student.getName());
System.out.println("student:" + student);
}
}
运行结果: