1. Lombok简介
1.1 是什么
官网地址: 官网
官方介绍:
Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.
Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.
大概的意思:Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或eques方法,同时可以自动化日志变量。
大白话就是:以前我们创建一个Java类,需要提供getter/setter/toString等繁琐的样板式代码,现在不需要了,加一个注解就搞定。
1.2 到底该不该用 Lombok?
这个问题一直有争议,爱它的人爱的要死,恨它的人恨地要死。
正方观点 | 反方观点 |
---|---|
代码干净整洁,工作量大大降低 | 强侵入性,强 X 队友,一人用都得用,否则编译通不过 |
代码可读性增强,保持代码风格一致 | 失去了封装意义,因为有些属性不一定想提供公共的getter/setter方法 |
Bean修改后,不需要修改模板化代码 | IDE和JDK升级存在破裂的风险 |
笔者观点中立,其它队友用就用,不用也影响不大。
2. 安装
笔者使用环境:jdk1.8 + idea2018+maven3.5.2
2.1 引入maven依赖
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
</dependencies>
2.2 安装插件
使用Lombok还需要给IDE安装插件,这也是说它会强X队友的原因。笔者使用的是idea,使用其它IDE的盆友自行Google。
打开idea的File->settings菜单,如图所示,点击Install安装
因兼容问题,2018版及以上直接安装Lombok插件可能会出现问题,若无法安装请点击这里查看解决方法
3. 常用注解使用
3.1 @Getter / @Setter注解
使用方法如图所示:
3.2 @toString注解
自动生成toString代码,并且修改属性后,不需要再修改。
3.3 @Data注解
@Data 注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
3.4 其它注解
- @EqualsAndHashCode 注解在类,生成hashCode和equals方法。
- @NoArgsConstructor 注解在类,生成无参的构造方法。
- @RequiredArgsConstructor 注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。
- @AllArgsConstructor 注解在类,生成包含类中所有字段的构造方法。
- @Slf4j 注解在类,生成log变量,严格意义来说是常量。private static final Logger log = LoggerFactory.getLogger(UserController.class);
4. Lombok工作原理
Java编译过程大致可以分为3个过程:
- 解析与填充符号表过程。
- 插入式注解处理器的注解处理过程。
- 分析与字节码生成过程。
Lombok本质上就是一个实现了“JSR 269 API”的程序。在javac的过程中,Lombok会在上述第2个步骤根据Lombok注解,修改语法树(AST),从而给class增加新的节点(代码块)。
共同学习,写下你的评论
评论加载中...
作者其他优质文章