lombok相关知识

1.Lombok作用

通过使用Lombok提供的注解,可以让java变得简洁、快速、易于维护。

2.Lombok工作原理分析

自从Java 6起,javac就支持“JSR 269 Pluggable Annotation Processing API”规范,只要程序实现了该API,就能在javac运行的时候得到调用。


图2-1 Lombok工作原理图

1)javac对源代码进行分析,生成一棵抽象语法树(AST);
2)运行过程中调用实现了“JSR 269 API”的Lombok程序;
3)Lombok就对第一步骤得到的AST进行处理,找到相应注解所在类对应的语法树(AST),然后修改该语法树(AST),增加相应方法定义的相应树节点;
4)javac使用修改后的抽象语法树(AST)生成字节码文件,即给class增加新的节点(代码块);

3.Lombok使用方法

3.1jar包引入,添加maven依赖,并下载安装lombok插件
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.4</version>
    <scope>provided</scope>
</dependency>
3.2常用注解

3.2.1@Data
注解在类,生成setter/gette、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法,等效于{@code @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode}。
3.2.2@Getter
注解在类或字段,注解在类时为所有字段生成getter方法,注解在字段上时只为该字段生成getter方法。
3.2.3@Setter
注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。
**3.2.4@RequiredArgsConstructor **
注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。
3.2.5@EqualsAndHashCode
注解在类,生成hashCode和equals方法。
3.2.6@NoArgsConstructor
注解在类,生成无参的构造方法。
3.2.7@AllArgsConstructor
注解在类,生成包含类中所有字段的构造方法。
3.2.8@ToString
注解在类,添加toString方法。
3.2.9@Slf4j
注解在类,生成log变量,严格意义来说是常量。private static final Logger log = LoggerFactory.getLogger(UserController.class);
3.2.10@NonNull
该注解用在属性或构造器上,Lombok会生成一个非空的声明,可用于校验参数,能帮助避免空指针。
3.2.11@Cleanup
该注解能帮助我们自动调用close()方法,很大的简化了代码。

参考地址:Lombok介绍、使用方法和总结
参考地址:Lombok简介、使用、工作原理、优缺点

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。