Lombok注解概览

什么是Lombok

  Lombok是一个java库,可以自动插入编辑器并构建工具,为您的java增添色彩。永远不要再写另一个getter或equals方法,使用一个注释,您的类具有一个功能齐全的构建器,自动化您的日志记录变量等等。

   Lombok官方网站

为什么用Lombok

减少大量工作量和维护难度的难度,加速开发

Maven依赖配置

<!-- 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代码更优雅

原文 

https://www.huangdayu.cn/2019/01/30/Lombok注解概览/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Lombok注解概览

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址