Lombok是一个java库,可以自动插入编辑器并构建工具,为您的java增添色彩。永远不要再写另一个getter或equals方法,使用一个注释,您的类具有一个功能齐全的构建器,自动化您的日志记录变量等等。
Lombok官方网站
减少大量工作量和维护难度的难度,加速开发。
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.4</version> <scope>provided</scope> </dependency>
注解 | 说明 |
---|---|
@Getter
& @Setter
|
用在 Java Bean 类或者字段上,无需生成 get/ set 方法,会自动生成所有的 get/ set 方法及一个默认的构造方法。 |
@ToString
|
使用在类上,相当于重写 toString()
方法,输出入 blog=huangdayu
|
@NoArgsConstructor
|
用在类上,用来生成一个默认的无参构造方法。 |
@RequiredArgsConstructor
|
用在类上,必选参数构造器。使用类中所有带有 @NonNull
注解和 final
类型的字段生成对应的构造方法。 |
@AllArgsConstructor
|
用在类上,生成一个所有参数的构造方法,默认不提供无参构造方法。 |
@Data
|
等同于 @Getter
, @Setter
, @RequiredArgsConstructor
, @ToString
, @EqualsAndHashCode
注解的集合 |
@Value
|
用在类上,构建不可变的对象类,等同于 @Getter
, @FieldDefaults(makeFinal=true, level=AccessLevel.PRIVATE)
, @AllArgsConstructor
, @ToString
, @EqualsAndHashCode
的集合 |
@NonNull
|
用在属性上,用于字段的非空检查,如果传入到 set 方法中的值为空,则抛出空指针异常,该注解也会生成一个默认的构造方法。 |
Builder
|
用在类上,把我们的Bean类包装为一个构建者模式,编译时增加了一个Builder内部类和全字段的构造器。 |
@EqualsAndHashCode
|
用在类上,相当于重写 equals()
方法和 hashCode()
方法 |
@Cleanup
|
用在方法上,自动管理资源,用在局部变量之前,在当前变量范围内即将执行完毕退出之前会自动清理资源,自动生成try-finally这样的代码来关闭流 |
@Builder
|
用在类、构造器、方法上,为你提供复杂的builder APIs,让你可以像如下方式一样调用Person.builder().name(“A”).city(“B”).job(“B”).job(“C”).build(); |
@SneakyThrows
|
用在类上,自动抛受检异常,而无需显式在方法上使用throws语句 |
@Synchronized
|
用在方法上,将方法声明为同步的,并自动加锁,而锁对象是一个私有的属性 $lock
或 $LOCK
,而java中的synchronized关键字锁对象是this,锁在this或者自己的类对象上存在副作用,就是你不能阻止非受控代码去锁this或者类对象,这可能会导致竞争条件或者其它线程错误 |
@Log
|
生成log对象,Creates log = java.util.logging.Logger.getLogger(LogExample.class.getName()); |
@CommonsLog
|
Creates log = org.apache.commons.logging.LogFactory.getLog(LogExample.class); |
@Log4j
|
Creates log = org.apache.log4j.Logger.getLogger(LogExample.class); |
@Log4j2
|
Creates log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class); |
@Slf4j
|
Creates log = org.slf4j.LoggerFactory.getLogger(LogExample.class); |
@XSlf4j
|
Creates log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class); |
Lombok开发指南
推荐一款代码神器,代码量至少省一半! Lombok:让JAVA代码更优雅