java

Lombok的介绍、安装、编译分析

2019-03-01  本文已影响0人  二妹是只猫
Lombok是干什么的,有什么优点?

通过简单的注解来精简代码。
优点:

Lombok的原理:

javac从Java6开始支持"JSR 269 API",只要实现了该api,就能在javac运行的时候得到调用,而Lombok实现了"JSR 269 API"。javac编译源码的流程如下:

javac编译.jpg

首先javac运行我们的源文件如何通过分析(parse)生成抽象语法树AST,然后在运行过程中(annotation processing)会调用实现了"JSR 269 API"规范的Lombok程序,然后就会通过它写好的注解生成相依的代码(如Data注解,会相应的生成set,get,tostring等方法),处理器就输出的就是被Lombok处理过的抽象语法树,最后解析和生成字节码文件。

Lombok的安装:

直接去去Lombok官网去查看最新版本,然后复制粘贴到pom中引入

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

<scope>provided</scope>这个字段意思是编译时不被打包成war包,然后在去插件中安装Lombok Plugin(不安装的话ide会报错的)。安装重启就可以正常使用了:

lombok plugin.jpg

红框里面时它的注解方法。
注意:

Lombok简单演示:
lombok_without.jpg
这是我们平时常见的一个pojo类,里面有各种set、get、构造器等方法。代码还挺多
lombok_with.jpg
这是通过Lombok改造过的类,是不是顺眼多了。
Lombok反编译分析:
import lombok.Setter;

@Setter
public class SetterTest {
    private String name;
}

首先创建一个简单的SetterTest类并使用了LombokSetter注解,然后在终端里执行
mvn clean package -Dmaven.test.skip=true命令,这条命令的意思是清除之前编译好的包,并跳过单元测试(mvn要自己去配置环境哈,怎么配置可以看mac下添加环境变量),这样我们的源文件就被编译出来了,具体位置终端会输出信息的。这里我用的是JD-GUI打开:

jd-gui.jpg

可以看到Lombok给我自动生成的set方法代码

Lombok还有很多注解,具体使用很简单就不一一介绍了。

上一篇 下一篇

猜你喜欢

热点阅读