Lombok

一、背景

       最近在看 Shiro,在网上找到一篇教程后,跟着人家去配置,但是在引入的 maven 依赖中,发现了一个笔记特殊的 maven 依赖,就是 Lombok,今天整理下这个依赖到底是如何使用的。

二、什么是Lombok

       Lombok 是一种自动接通你的编辑器和构建工具的一个 Java 库,你不用再一次的去编写 settergetter 和 equals 等方法。知道这些就可以了。

        其实 Lombok 就是帮助我们编写 settergetter 或者是 equals 方法的一个工具。其实它的魅力并不在于帮助我们简单的编写对应的 setter 或者更多的方法,还有一点在于,当我们的字段发生改变时,Lombok 也会对相应的 setter 方法进行改变。

三、使用原因

       要回答这个问题,仅仅知道什么是 Lombok 是不够的。根据 Lombok 的使用规则,如果想要使用 Lombok 就需要删除项目中(JavaBean)已存在的 settergetterequals 和 hash 等方法。

        当然 Lombok 也提供了对打印日志的处理。这样在使用 Lombok 时就会大大减少项目中的代码量,同时由于 Lombok 有自动修改的功能,这也提高了项目中代码的执行效率。

       综上所述,使用 Lombok 的两点主要原因是:1、简化冗余的 JavaBean 代码。2、大大提高 JavaBean 中方法的执行效率。

四、Lombok的实现原理

       Lombok 实现了 JSR 269 API 规范,javac 在 Java6 开始支持这一规范,只要程序实现了该 API,就能在 javac 运行的时候得到调用,那么 Lombok 在编译时使用的就是 javac,具体的流程如下:

       首先是项目的源代码文件,在经过编译处理后,Lombok 会使用自己的抽象语法树去进行注解的匹配,如果在项目中的某一个类中使用了 Lombok 中的注解,那么注解编译器就会自动去匹配项目中的注解对应到在 Lombok 语法树中的注解文件,并通过自动编译匹配来生成对应类中的 setter 或者 getter 方法,达到简化代码的目的。执行顺序就如上图的叠放顺序。

五、Lombok注解详解

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

# 在 JavaBean 中使用,使用此注解会生成对应的 setter 方法。
@setter

# 在 JavaBean 中使用,使用此注解会生成对应的 getter 方法。
@getter

# 在 JavaBean 中使用,使用此注解会生成对应的无参构造方法。
@NoArgsConstructor

# 在 JavaBean中 使用,使用此注解会生成对应的有参构造方法。
@AllArgsConstructor

# 在 JavaBean 中使用,使用此注解会自动重写对应的 toString 方法。
@ToString

# 在 JavaBean 中使用,使用此注解会自动重写对应的 equals 方法和 hashcode 方法。
@EqualsAndHashCode

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

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

# 排除 column 列所对应的元素,即在生成 toString 方法时不包含 column 参数。
@ToString(exclude="column")

# 排除多个 column 列所对应的元素,其中间用英文状态下的逗号进行分割,即在生成 toString 方法时不包含多个 column 参数。
@ToString(exclude={"column1","column2"})

# 只生成包含 columnl 列所对应元素的参数的 toString 方法,即在生成 toString 方法时只包含 column 参数。
@ToString(of="column")

# 只生成包含多个 columnl 列所对应元素的参数的 toString 方法,其中间用英文状态下的逗号进行分割,即在生成 toString 方法时只包含多个 column 参数。
@ToString(of={"column1","column2"})

六、如何使用LomBok

       这里以 eclipse 的安装方式为例,首先引入我们的 maven 依赖,如下所示:

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

       在本地的 maven 仓库库找到已经下载好的 jar 包:

       将 lombok-1.16.20.jar 直接 copy 一份到 eclipse 的安装目录下:

       打开 cmd 窗口,编译一下 lombok 的 jar 包:

       命令执行了之后,会弹出下面这个窗口,然后点击 Install

       安装成功之后,打开 eclipse.ini,发现多了一行,这个时候我们就安装成功了。

参考博客地址:@AllArgsConstructor @NoArgsConstructor @Data注解失效,没有作用-CSDN博客 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐的小三菊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值