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格式的链式编程,在不破坏本对象的前提