Lombok是一种Java实用工具,通过注解的形式来简化代码,提高开发效率。
1、Lombok插件安装
由于在线安装不成功,此处采用离线安装的方式。
1)下载插件
访问GitHub里lombok-intellij-plugin仓库,根据Intellij IDEA版本确定需要下载的插件版本
https://github.com/mplushnikov/lombok-intellij-plugin/releases
2)安装插件
进入Intellij IDEA—>Settings—>Plugins,点击Install plugin from disk,选择下载的插件即可。
2、Lombok使用
1)Maven依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
<scope>provided</scope>
</dependency>
2)@Data
该注解作用在类上,提供getter、setter、equals、canEqual、hashcode、toString方法。
3)@Getter/@Setter
该注解作用在类或属性上,使用时会默认生成一个无参构造方法和属性对应的getter/setter方法。该注解生成的getter方法遵循布尔属性的约定,例如boolean类型的newUser,getter方法为isNewUser而不是getNewUser。
4)@ToString
该注解作用在类上,会生成一个toString方法,按照顺序打印类名和字段。
- includeFieldNames参数可以控制输出中包含的属性名称;
- exclude参数可以控制需要排除的属性名称;
- callSuper参数可以控制输出父类的属性。
5)@Log
该注解作用在类上,是一个抽象注解,主要有以下选择可用:
//@CommonsLog
private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);
//@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);
默认情况下,记录器的主题(或名称)将是使用注释进行@Log注释的类的类名称。这可以通过指定topic参数来定制。例如:@Slf4j(topic="userCenter")。
Lombok提供了一些自定义配置项可以参看官方说明文档:https://projectlombok.org/features/log
6)@EqualsAndHashcode
该注解作用在类上,会同时生成equals和hashcode方法。当存在集成关系时,需要设置callSuper参数为true。
7)@NonNull
该注解作用在属性上,用于属性的非空检查。当作用在setter方法的字段上,将生成一个空检查,如果为空则抛出NullPointerException。
8)@Cleanup
该注解作用在属性前,用来保证被分配的资源被释放。在本地变量上使用该注解,任何后续代码都会被封装载try/finally中,确保当前作用域中的资源被释放。
默认@Cleanup清理的方法为close,可以使用value属性指定不同的方法名。
9)@AllArgsConstructor
该注解作用在类上,提供一个全参数的构造方法,默认不提供无参构造方法。
10)@NoArgsConstructor
该注解作用在类上,提供一个无参构造方法。
11)@RequiredArgsConstructor
该注解作用在类上,使用类中所有带有@NotNull注解或者带有final修饰的成员变量生成对应的构造方法。