天天看点

lombok注解总结

Lombok

一、日志注解

1.1 @CommonsLog

  • log.info(obj) 可以直接输出对象
private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);

           

1.2 @JBossLog

private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LogExample.class);

           

1.3 @Log

private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName());

           

1.4 @Log4j

private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LogExample.class);

           

1.5 @Log4j2

private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);

           

1.6 @Slf4j

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);

           

1.7 @XSlf4j

private static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);

           

默认情况下,记录器的主题(或名称)将是使用注释进行@Log注释的类的类名称,这可以通过制定topic参数来定制

二、类上的基本方法

2.1 @Getter和@Setter

  • 生成的getting遵循布尔属性的约定 isSex—getSex
  • 在使用该注释时,会默认生成一个无参构造
  • 该注释也可以使用在单个属性上,会默认生成一个无参构造

2.2 @Data

  • getter,setter,equals,canEqual,hashCode,toString的集合
  • @Data 注释非常有用,但是他没有与其他注释相同的控制粒度。@Data提供了一个可以生成静态工厂的单一参数
@Data(staticConstructor="PersonFactory")
           

2.3 @NonNull

  • 该注解在属性上,该注解用于属的非空检查,当放在setter方法的字段上,将生成一个空检查,如为空,则抛出一个NullPointException,该注释会默认生成一个无参构造

2.4 @toString

  • 如果需要可以通过注释参数includeFiledNames 来控制输出中是否包含的属性拿名称
  • 可以通过exclude参数中包含字段名称,可以从生成的方法中排除特定字段
  • 可以通过callSuper 参数控制父类的输出

2.5 @EqualsAndHashCode

  • 该注释使用在类上,该注解在类级别注释会同时生成equals,hashCode 注意在继承关系中的使用

2.6 @AllArgConstrutor

  • 该注解使用在类上,该注释提供了一个全参数的构造方法,默认不提供无参构造

2.7 @NoArgsConstrutor

  • 该注解使用在类上,该注解提供一个无参构造

2.8 @RequiredArgsConstructor

  • 该注解使用在类上,使用类中所有带有@NonNull注解的或者带有final修改的成员变量生成相应的构造方法

2.9 @Value

  • equlas、hashCode、toString 没有setter方法

2.10 @Cleanup

  • 该注解使用在属性前,该注解是用来保证分配的资源被释放,在本地变量上使用该注解,任何后续代码都将封装在try/finally中,确保当前作用于中的资源被释放。默认@Cleanup 清理的方法为close,可以以使用value制定的方法名称

三、链式编程

3.1 @Accessors

  • chain 一个布尔值。如果为真,产生的setter返回的this而不是void。默认是假。如果fluent=true,那么chain默认为真 (链式编程的实现)
  • fluent 一个布尔值。如果为真,去掉get和set的前缀

3.2 @RequiredArgsConstructor(staticName = “of”)

  • 创建一个of的静态构建对象方法,将

    @NonNUll

    注解的字段为参数,与

    @Data

    中的

    staticConstructor

    区别是,

    @Data

    创建的是单一模式

3.2 @Build

  • 可以创建的是一个Build格式的链式编程,在不破坏本对象的前提