😊 @ 作者: 一恍过去
目录
- 前言
- 1、安装Lombok插件(IDEA 2020.3后不需要)
- 2、引入POM
- 3、Lombok注解说明
- 4、@Data使用说明
前言
Lombok 是一个 Java 库,通过自动生成代码的方式,简化了 Java 类的编写,减少了冗余的样板代码。它通过在编译时自动生成 getter、setter、构造函数、equals/hashCode、toString 等常用方法的实现,使开发人员能够更专注于业务逻辑而不是重复的代码编写。
以下是 Lombok 的一些常用注解及其功能:
@Getter / @Setter:
自动生成属性的 getter 和 setter 方法。@ToString:
自动生成 toString 方法,可选择包含指定属性。@EqualsAndHashCode:
自动生成 equals 和 hashCode 方法,可选择包含指定属性。@NoArgsConstructor:
自动生成无参构造函数。@AllArgsConstructor:
自动生成包含所有属性的构造函数。@Data:
包含了 @Getter、@Setter、@ToString、@EqualsAndHashCode 和 @RequiredArgsConstructor 的组合注解。@Builder:
自动生成构造对象的建造者模式代码。@Slf4j:
自动生成一个名为 log 的日志记录器。
在传统的实体类中,通过使用getter/setter/toString
,如果是实体类的字段比较多,那么代码可读性较差,甚至出现遗漏getter/setter
的情况,目前IDEA 2020.3
以及SpringBoot 2.1.x
的版本都默认支持了Lombok
1、安装Lombok插件(IDEA 2020.3后不需要)
搜索lombok
安装插件
在setting->Build,Execution,Deployment->Compiler->Annocation Processors
中开启 Annocation Processors
2、引入POM
如果是SpringBoot 2.1.x
以后的版本,可以直接引入lombok
,不需要带上版本号:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
如果是SpringBoot 2.1.x
以前的版本,需要手动加上版本号,比如:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
3、Lombok注解说明
Lombok最常用的注解就是@Data
作用于实体类上,是@ToString、@EqualsAndHashCode、@Getter、@Setter、@RequiredArgsConstructor
的集合;
- @Getter/@Setter: 作用实体类上,生成所有成员变量的getter、setter方法;
- @ToString: 作用实体类上,重新toString()方法;
- @EqualsAndHashCode: 作用实体类上,覆盖默认的equals和hashCode
- @RequiredArgsConstructor: 生成包含final和@NonNull注解的成员变量的构造器;
- @NoArgsConstructor: 生成无参构造器;
- @AllArgsConstructor: 生成全参构造器;
4、@Data使用说明
实体类:
@Data
public class User {
public String username;
public String nickname;
}
Test类:
public class Test {
public static void main(String[] args) {
// 调用set、get赋值
User user = new User();
user.setUsername("admin");
user.setNickname("测试用户");
System.out.println("用户名为:" + user.getUsername());
// 打印实体的json,@Data重写了默认的ToString方法
System.out.println("实体内容:" + user);
}
}
效果: