文章目录
概念
Lombok是一个java库,会自动插入到编辑器和构建工具中,为您的java增添趣味。
永远不需要再编写一个getter或equals方法,仅用一个注释,您的类就有了一个功能齐全的构造函数,自动生成您的日志变量,等等。
GitHub源码:https://github.com/projectlombok/lombok
IDEA的最新版本已经内置了Lombok插件,SpringBoot的最新版本也已经在Starter中引用了Lombok依赖。
实现原理
自从Java 6起,javac 就支持“JSR 269 Pluggable Annotation Processing API”规范,只要程序实现了该API,就能在 javac 运行的时候得到调用。
Lombok就是一个实现了"JSR 269 API"的程序。在使用javac的过程中,它产生作用的具体流程如下:
- javac对源代码进行分析,生成一棵抽象语法树(AST);
- javac编译过程中调用实现了JSR 269的Lombok程序;
- 此时Lombok就对第一步骤得到的AST进行处理,找到Lombok注解所在类对应的AST,然后修改该AST,增加L