lombok--知识点

lombok

Lombok是一款通过注解在Java编译期生成代码的工具,通过使用其内置的一些注解如@Getter, @Setter等,可以在编译期间生成getter,setter,构造器,builder等代码

JSR 269在JDK6中被引入,作为APT的替代方案。javac执行的时候会调用Pluggable Annotation Processing API,因此我们可以通过实现此API来改变编译期的一些行为从而达到目的

现在有一个实现了Pluggable Annotation Processing API的程序A,那么使用javac编译时的具体流程如下:

1. javac编译器对源码进行分析,生成一个抽象的语法树(AST)

2. javac编译器运行A程序

3. A程序完成逻辑,一般是修改此语法树

4. javac使用修改后的语法树生成可执行的字节码文件

Lomok便是通过Pluggable Annotation Processing API来实现代码生成的。



一、对静态变量不会生成get 和set 

     对final 常量会生成 get

     tostring(exclude={},of={}) 类上,exclude排除哪些字段,Of   仅包含哪些字段

@Data注解:在JavaBean或类JavaBean中使用,这个注解包含范围最广,它包含getter、setter、NoArgsConstructor注解,即当使用当前注解时,会自动生成包含的所有方法;

@getter注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的getter方法;

@setter注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的setter方法;

@NoArgsConstructor注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的无参构造方法;

@AllArgsConstructor注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的有参构造方法;

@ToString注解:在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的toStirng方法;

@EqualsAndHashCode注解:在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的equals方法和hashCode方法;

@Slf4j:在需要打印日志的类中使用,当项目中使用了slf4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;

@Log4j:在需要打印日志的类中使用,当项目中使用了log4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;

在使用以上注解需要处理参数时,处理方法如下(以@ToString注解为例,其他注解同@ToString注解):

@ToString(exclude="column")

意义:排除column列所对应的元素,即在生成toString方法时不包含column参数;

@ToString(exclude={"column1","column2"})

意义:排除多个column列所对应的元素,其中间用英文状态下的逗号进行分割,即在生成toString方法时不包含多个column参数;

@ToString(of="column")

意义:只生成包含column列所对应的元素的参数的toString方法,即在生成toString方法时只包含column参数;;

@ToString(of={"column1","column2"})

意义:只生成包含多个column列所对应的元素的参数的toString方法,其中间用英文状态下的逗号进行分割,即在生成toString方法时只包含多个column参数;

六、使用Lombok可能需要注意的地方

    (1)、当你的IDE是Idea时,要注意你的Idea是支持Lombok的,如果不支持请更换2017版本尝试。

   (2)、在使用Lombok时,你的编辑器可能会报错,这时请在你的IDE中安装Lombok插件(如果使用的Idea则直接搜索Lombok插件,选择星级最高的,直接安装就是,其他Ide类同)。

   (3)、参数的处理往往都是根据项目需求来进行,请妥善处理参数。

sts配置lombok

击下载好的lombak.jar,安装步骤如下:

2-1.关闭弹出的警告窗口,点击 Specify location..

img

 

 

2-2.选择eclipse的安装目录

img

 

 

2-3.点击Install / Update

img

 

 

2-4.点击Quit Installer,完成安装

img

 

 

3、安装完成之后,请确认eclipse安装路径下是否多了一个lombok.jar包,并且其 配置文件eclipse.ini中是否 添加了如下内容:-javaagent:D:uild-enveclipselombok.jar

    <dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
   <version>1.18.10</version>
   <scope>provided</scope>
</dependency>



原文地址:https://www.cnblogs.com/jentary/p/12994769.html