简介
Lombok是一个java库,它可以自动插入到编辑器和构建工具中,从而简化我们的ava代码。不用再重新编写getter和equals方法。通过在类上添加注释,可以使类带有功能全面的生成器,自动化的日志记录变量等等。
总之一句话Lombok是一个通过在类上添加注解来简化我们的java代码,避免编写一些觉得相对比较臃肿的代码的工具包。
原理
Lombok本质上就是一个实现了“JSR 269 API”的程序。在使用javac的过程中,它产生作用的具体流程如下:
- javac对源代码进行分析,生成了一棵抽象语法树(AST)
- 运行过程中调用实现了“JSR 269 API”的Lombok程序
- 此时Lombok就对第一步骤得到的AST进行处理,找到@Data注解所在类对应的语法树(AST),然后修改该语法树(AST),增加getter和setter方法定义的相应树节点
- javac使用修改后的抽象语法树(AST)生成字节码文件,即给class增加新的节点(代码块)
安装
- 基于编译环境
JDK9+ 与 module-info.java
支持JDK9+,假设你将自己的项目模块化(你已经编写了一个module-info.java文件):
javac -cp lombok.jar -p lombok.jar ...