常用

@Getter 注解,添加在属性上,生成对应的 get 方法。
@Setter 注解,添加在属性上,生成对应的 set 方法。
@ToString 注解,添加在上,生成 toString 方法。
@EqualsAndHashCode 注解,添加在上,生成 equals 和 hashCode 方法。
@AllArgsConstructor、@RequiredArgsConstructor、@NoArgsConstructor 注解,添加在上,为类自动生成对应参数的构造方法。
@Data 注解,添加在上,是 5 个 Lombok 注解的组合。

  • 为所有属性,添加 @Getter、@ToString、@EqualsAndHashCode 注解的效果
  • 为非 final 修饰的属性,添加 @Setter 注解的效果
  • 为 final 修改的属性,添加 @RequiredArgsConstructor 注解的效果

@Value 注解,添加在上,和 @Data 注解类似,区别在于它会把所有属性默认定义为 private final 修饰,所以不会生成 set 方法。
@CommonsLog@Flogger@Log@JBossLog@Log4j@Log4j2@Slf4j@Slf4jX 注解,添加在上,自动为类添加对应的日志支持。
@NonNull 注解,添加在方法参数类属性上,用于自动生成 null 参数检查。若确实是 null 时,抛出 NullPointerException 异常。
@Cleanup 注解,添加在方法中的局部变量上,在作用域结束时会自动调用 #close() 方法,来释放资源。例如说,使用在 Java IO 流操作的时候。
@Builder 注解,添加在上,给该类加个构造者模式 Builder 内部类。
@Synchronized 注解,添加在方法上,添加同步锁。
@SneakyThrows 注解,添加在方法上,给该方法添加 try catch 代码块。
@Accessors 注解,添加在方法属性上,并设置 chain = true,实现链式编程。

实践


  • 重点例子

    @RequiredArgsConstructor

    ```java @RequiredArgsConstructor(onConstructor_ = {@Autowired, @Lazy}) public class ArticleCategoryServiceImpl extends ServiceImpl implements ArticleCategoryService {

    private final CategoryService categoryService;

    private final ArticleService articleService; …. }

//….. //生成的 @Autowired @Lazy public ArticleCategoryServiceImpl(CategoryService categoryService, ArticleService articleService) { this.categoryService = categoryService; this.articleService = articleService; } ```