Lombok项目是一个Java库,它会自动插入您的编辑器和构建工具中,从而使您的Java更加生动有趣。永远不要再编写另一个getter或equals方法,带有一个注释的类将具有功能全面的生成器,自动执行日志记录变量等等。
安装Lombok,maven项目添加以下内容到pom.xml.
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
</dependencies>
IntelliJ IDEA 安装Lombok插件,打开IntelliJ IDEA后点击菜单栏中的File-->Settings.点击设置中的Plugins进行插件的安装,在右侧选择Browse repositories...,然后在搜索页面输入lombok变可以查询到下方的Lombok Plugin,鼠标点击Lombok Plugin可在右侧看到Install按钮,点击该按钮便可安装.
注解介绍(来自lombok官网)
使用@NonNull
方法或构造函数的参数来使lombok为您生成一个空检查语句。
自动资源管理:close()
轻松安全地调用方法。
不再写public int getFoo() {return foo;}
。
无需启动调试器即可查看您的字段:只需让lombok toString
为您生成一个!
equals变得容易:从对象的字段生成hashCode
和equals
实现。
@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
按顺序构造函数:生成不带参数的构造函数,每个final / non-nullfield都带一个参数,或者每个字段带一个参数。
所有现在一起:为快捷方式@ToString
,@EqualsAndHashCode
, @Getter
在所有领域,@Setter
所有非final字段,以及 @RequiredArgsConstructor
!
实现不可变的类,相当于给你类加final。
@Builder
使您可以自动生成使您的类可实例化的代码,例如:Person.builder().name("Adam Savage").city("San Francisco").job("Mythbusters").job("Unchained Reaction").build();
将受检异常转为非受检异常抛出(谨慎使用)
自动为对象静态方法添加静态变量锁相当于类锁,非静态方法添加对象锁。
为不可变属性自动创建独立的对象构造方法。
您可以让lombok生成一个将在第一次调用此getter时计算一次值的getter,然后将其缓存。如果计算该值占用大量CPU或该值占用大量内存,这将很有用。
您将的变体@Log
放在您的类上(适用于您所使用的日志系统的任何一种);然后,您将拥有一个静态的final log
字段,该字段按照使用的日志记录框架通常规定的方式进行初始化,然后可以使用该方法编写日志语句。
有几种选择:
@CommonsLog
创建 private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);
@Flogger
创建 private static final com.google.common.flogger.FluentLogger log = com.google.common.flogger.FluentLogger.forEnclosingClass();
@JBossLog
创建 private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LogExample.class);
@Log
创建 private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName());
@Log4j
创建 private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LogExample.class);
@Log4j2
创建 private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);
@Slf4j
创建 private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
@XSlf4j
创建 private static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);
@CustomLog
创建 private static final com.foo.your.Logger log = com.foo.your.LoggerFactory.createYourLogger(LogExample.class);