Lombok注解
@AllArgsConstructor
生成包含所有字段的构造器,标记为的字段@NonNull将对这些参数进行空检查。
参数
- staticName : 不为空的话,生成一个静态方法返回实例,并把构造器设置为private
1 |
|
生成:
1 | public class Example { |
- access : 这个选项可以用来改变生成的构造方法的访问级别,默认public
@RequiredArgsConstructor
生成必须初始化字段的构造器,比如带final、@NonNull,对于标有@NonNull注解的字段,还将生成一个显式的null检查。
1 |
|
生成后:
1 | public class Example { |
@NoArgsConstructor
生成无参数构造器
参数
- access:访问权限修饰符
- force:为true时,当有 final 字段没有被初始化时,这个选项可以强制 Lombok 生成一个无参数的构造方法,并将所有 final 字段初始化为其默认值(0、false、null等)
- onConstructor:添加注解,参考@Getter#onMethod
@NoArgsConstructor、@AllArgsConstructor和@RequiredArgsConstructor区别
- @NoArgsConstructor:这个注解用于生成一个无参数的构造函数。当你在一个类上使用这个注解时,Lombok会自动为该类生成一个无参数的构造函数。这个注解在Spring Boot中常常被用在不需要参数就能创建对象的地方,例如单例模式或者作为其他构造函数的依赖注入。
- @AllArgsConstructor:这个注解用于生成一个包含所有参数的构造函数。当你在一个类上使用这个注解时,Lombok会自动为该类的所有字段生成一个带有参数的构造函数。这个注解在Spring Boot中常常被用在需要使用所有字段来创建对象的地方,例如DTO(Data Transfer Object)对象的创建。
- @RequiredArgsConstructor:这个注解用于自动生成带有final修饰符的成员变量的构造函数。当一个类中存在多个final修饰符的成员变量时,使用这个注解可以避免手动编写重复的构造函数代码。这个注解在Spring Boot中常常被用在需要将final字段绑定到具体实现的地方,例如Spring的Bean配置。
总结一下,@NoArgsConstructor、@AllArgsConstructor和@RequiredArgsConstructor这三个注解在Spring Boot项目中的常见应用场景包括:
在单例模式中,使用@NoArgsConstructor来创建一个无参数的构造函数,以便在不需要任何参数的情况下创建对象。
在DTO对象的创建中,使用@AllArgsConstructor来创建一个包含所有字段的构造函数,以便将所有字段的值传递给对象。
在Spring的Bean配置中,使用@RequiredArgsConstructor来自动生成包含final字段的构造函数的代码,以便将final字段绑定到具体实现。
@Getter
生成getter、写在类上会生成该类下所有字段的getter。写在某个字段上就作用与该字段
参数
- onMethod:把需要添加的注解写在这
1
2
3
4
5
6public class Example {
// JDK7写法 @Getter(onMethod=@__({@Deprecated}))
private int foo;
private final String bar = "";
}
生成:
1 | public class Example { |
- value:访问权限修饰符
@Setter
生成Setter
- onMethod:在方法上添加中注解,见@Getter#onMethod
- onParam:在方法的参数上添加注解,见@Getter#onMethod
- value:访问权限修饰符
@NonNull
空检查
1 | public class Example { |
生成后:
1 | public class Example { |