1.@Getter/@Setter
自动生成getter/setter方法
2.@NoArgsConstructor/@AllArgsConstructor
自动生成无参/有参构造方法
3.@ToString
自动生成toString方法
4.@EqualsAndHashCode
自动生成equals和hashCode方法
5.@Data
自动生成所有基本方法,包括getter/setter、equals、hashCode、toString等
6.@Builder
使用Builder模式创建对象
@Data
@Builder
public class User {
private Long id;
private String username;
private String password;
}
//类名.builder().属性赋值.build()返回对象
User user = User.builder()
.id(1L)
.username("张三")
.password("123456").build();
7.@Slf4j
自动生成日志对象
8.@Accessors
用于配置生成的 getter 和 setter 方法的形式
主要有以下三个参数:
chain
:配置生成的setter
方法返回当前对象还是void
,默认为false
。fluent
:配置生成的getter
和setter
方法是否使用fluent API
形式,默认为false
。prefix
:配置生成的getter
和setter
方法的前缀,默认为空字符串。
1.chain
当
chain
参数为true
时,生成的setter
方法会返回当前对象,以实现链式调用的效果。例如:
如果
chain
参数为false
或者不指定,则生成的setter
方法返回void
,无法链式调用。
2.fluent
当
fluent
参数为true
时,生成的getter
和setter
方法的命名采用fluent API
的风格,即将方法名中的get
或set
前缀去掉,并将属性名首字母小写后拼接起来。例如:
如果
fluent
参数为false
或者不指定,则生成的getter
和setter
方法的命名采用标准的 Java 风格,即将属性名首字母大写后拼接get
或set
前缀。
3.prefix
当
prefix
参数指定了一个非空字符串时,生成的getter
和setter
方法的命名会使用该前缀。例如: