跳到主要内容

Lombok

@Getter @Setter

@Setter(AccessLevel.PROTECTED)

@NonNull

@ToString(callSuper=true,exclude="someExcludedField")

@EqualsAndHashCode(callSuper=true,exclude=zip)

@AllArgsConstructor @NoArgsConstructor

使用技巧

1、@RequiredArgsConstructor

使用 @RequiredArgsConstructor 注解,会对 final@NonNUll 修饰的成员变量生成构造方法, 如果有非 final@NonNUll 修饰的成员变量,则不会为其生成构造方法。

用法,可以代替 @AutoWired 注解。需要注意的是,成员变量需要使用 final@NonNUll 修饰。

@Controller
@RequiredArgsConstructor
public class Demo1{

private final Demo2 demo2;

@NonNull
private Demo3 demo3;

@AutoWired
private Demo4 demo4;

public void test(){
// demo2, demo3, demo4 都会被注入
demo2.test();
demo3.test();
demo4.test();
}
}

@Accessors 注解

@Accessors 注解可以自定义 getter/setter 方法的生成策略。

有三个属性

  1. fluent:如果设置为 true,则生成的 getter/setter 方法的方法名不会包含 get/set 前缀,且返回值为 this,而不是 void。
  2. chain:如果设置为 true,则生成的 setter 方法返回值为 this,而不是 void。
  3. prefix:指定字段的前缀,在生成 getter/setter 方法时会忽略该前缀。