技术文章

Java开发中用到的lombok是什么?

Lombok是一个Java库,能帮助开发开发人员精简代码,尤其是简单的POJO对象,只需要加一个注释,再不用生成get、set, hashcode, equals这些方法了。Lombok都能在编译的时候自动生成,让代码看起来更精简。有时候加了变量,往往会忘记加get、set方法,有了Lombok这些问题都解决了。当然Lombok还有更强大的功能。大家可以官网看看

使用

1、pom.xml文件引入依赖

Java开发

2、IDEA安装Lombok插件

Java开发
 

3、常用API

@Getter/@Setter 类的属性字段自动生成Get/Set方法

@ToString,自动生成一个toString方法

@EqualsAndHashCode,为使用该注解的类自动生成equals和hashCode方法

@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor

自动生成了无参构造器、指定参数的构造器和包含所有参数的构造器。

@Data,包含了@ToString,@EqualsAndHashCode,@Getter、@Setter, @RequiredArgsConstructor

@Cleanup 自动释放资源。

@NonNull 为方法或构造函数的参数提供非空检查

这里只列举一些常用的注解。从代码结构也可以看出来支持哪些注解

Java开发

例子

以Data注解举个例子,可以看到自动加上了set、get、toString、hashCode、equals方法,整个类的代码看起来是十分精简的。

Java开发

原理

java的注解可以在两种时刻进行解析:1. 运行时通过反射解析 2. 编译时解析

1、运行时通过反射解析 :就像@Target、@Retention这种注解 像spring的注解都是运行时通过反射进行解析的

2、编译时解析: 是通过 JSR 269: Pluggable Annotation Processing API 实现的,只要程序实现了该API,就能在javac运行的时候得到调用

我们平常就是执行javac就可以从java文件生成class文件

Java开发

而Lombok就是在javac的中间添加了处理器,读取到注解,自动添加新的代码

Java开发