1、Lombok简介
Lombok
项目是一个java库
,它可以自动插入到编辑器和构建工具中,增强java
的性能。不需要再写getter
、setter
或equals
方法,只要有一个注解,就有一个功能齐全的构建器、自动记录变量等等。
2、SpringBoot引入Lombok
SpringBoot
项目Lombok
的引入方式为:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.34</version>
</dependency>
3、Lombok注解说明
3.1 @Setter和@Getter
作用
:为类中的属性提供setter/getter
方法
位置
:类上方或属性上方,在属性上方则为属性生成setter/getter
方法,在类上方表示给该类下的所有属性生成setter/getter
方法
属性
:设置setter
和getter
访问权限
//给类下的所有属性添加Setter/Getter
@Setter
@Getter
public class User {
//给id属性添加Setter
@Setter
private Integer id;
//给username的setter方法设置私有权限
@Setter(AccessLevel.PRIVATE)
private String username;
//取消password的Getter方法
@Getter(AccessLevel.NONE)
private String password;
private static int age;
private final String address = null;
}
static修饰的变量不生成getter和setter方法
final修饰的变量只生成getter方法
3.2@ToString
作用
:生成toString
方法,默认情况下它会按顺序打印类名称以及每个字段。
位置
:类上方
属性
:exclude
:取消某一个或多个变量在toString
方法中的显示
@ToString(exclude={
"password"})
public class User {
private Integer id;
private String username;
private String password;
}
3.3 @NonNull
作用
:用于方法参数前,表示调用该方法时参数不能为null
;用于属性上方,表示为该属性赋值时值不能为null
。
位置
:方法参数前或属性上方
public class User {
@NonNull
private Integer id;
private String username;
private String password;
public User(@NonNull id,String username,String password) {
this.id = id;
this.username= username;
this.password= password;
}
}
3.4 @NoArgsConstructor,@RequiredArgsConstructor,@AllArgsConstructor
@NoArgsConstructor
作用
:生成无参构造方法
位置
:类上方
@