lombox 介绍
简单的说:通过简单注解老精简代码达到消除冗长代码的目的。
更多详情参考官网:https://projectlombok.org/
lombox优点
1、提高编码效率
2、使代码更加简洁
3、消除冗长代码
4、避免修改字段名字时忘记修改方法名
5、提高代码”逼格”
注:IDE上必须要支持Lombox,否者IDE会报错。
lombox原理
自从Java 6起,javac就支持“JSR 269 Pluggable Annotation Processing API(创建编译期的注解处理器)”规范,只要程序实现了该API,就能在javac运行的时候得到调用。
流程:
- 定义编译期的注解
- 利用JSR269 api(Pluggable Annotation Processing API )创建编译期的注解处理器
- 利用tools.jar的javac api处理AST(抽象语法树)
- 将功能注册进jar包
根据流程你也可以编写出类似lombox的插件
上图是 Lombok 处理流程,在Javac 解析成抽象语法树之后(AST), Lombok 根据自己的注解处理器,动态的修改 AST,增加新的节点(所谓代码),最终通过分析和生成字节码。
lombok安装
(在pom.xml文件中加入下面依赖):
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
</dependency>
idea安装lombok 插件安装
lombox注解说明(建议参考官方文档):https://projectlombok.org/features/all
看不懂的可以用谷歌浏览器翻译,虽然翻译不是很准确但是大概意思,相信以你们的水平,还是ok的。
Lombox实际使用需注意的点
1、在类需要序列化、反序列化时详细控制字段。
例如:Jackson json序列化
2、使用Lombox虽然能够省去手动创建setter和getter方法等繁琐、但是却降低了源代码文件的可读性和完整性、降低了阅读源代码的舒适度。
3、使用@Slf4j还是@Log4j看项目使用的日记框架
4、选择适合的地方使用Lombox,例如POJO、VO等等