Lombok介绍,使用方法及原理

Lombok介绍,使用方法及原理

Lombok 是一个自动插入编辑器和构建工具的Java库。它提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码。

官方首页:https://projectlombok.org/
下载位置:https://projectlombok.org/download
注解介绍:https://projectlombok.org/features/all
GitHub : https://github.com/rzwitserloot/lombok


常用注解介绍

@Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter:注解在属性上;为属性提供 setting 方法
@Getter:注解在属性上;为属性提供 getting 方法
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@Slf4j : 注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法 所有参数
@NonNull: 注解在属性上,用来校验参数
@Getter @Setter:分别为属性添加get/set方法

public class Person {
    private String id;
    private Logger log = Logger.getLogger(Person.class);

    public Person() {
    }
    public Person(String id) {
        this.id = id;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
}

上述代码使用lombok可以这样写

@Log4j
@NoArgsConstructor
@AllArgsConstructor
public class Person {
  @Getter @Setter private String id;
}

稍微介绍一下,细节有位大佬已经在简书上描述的很明白了。

安装及使用教程

安装

一、Eclipse/My Eclipse安装lombok

使用 lombok 是需要安装的,如果不安装,IDE 则无法解析 lombok 注解。
1. 先在官网下载最新版本的 JAR 包,我目前是1.16版
这里写图片描述
2. 双击下载下来的 JAR 包安装 lombok,或者使用命令行 java -jar lombok.jar
3. 勾选要安装的eclipse/my eclipse 单击install/update按钮
这里写图片描述
如果上述方法不可行,可尝试以下方法:
1. 将 lombok.jar复制到myeclipse.ini / eclipse.ini所在的文件夹目录下
2. 打开 eclipse.ini / myeclipse.ini,在最后面插入以下两行并保存:

-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar

3.重启 eclipse / myeclipse

二、IDEA 安装lombok
  1. 添加插件Files->settings->plugins
  2. 点击按钮【Install JetBrains plugin…】
  3. 在新弹出的窗口,搜索lombok,在搜索到的lombok上右键安装就可以了
三、Maven依赖
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok-maven</artifactId>
    <version>1.16.20.0</version>
    <type>pom</type>
</dependency>

使用

  1. 在需要安装Lombok的工程下加入lombok.jar包
  2. 在需要的类上或属性上面加入想要的注解

原理解释

lombok本质上就是这样的一个实现了”JSR 269 API可以参考这个)”的程序。在使用javac的过程中,它产生作用的具体流程如下:
1. javac对源代码进行分析,生成一棵抽象语法树(AST)。
2. 运行过程中调用实现了”JSR 269 API”的lombok程序。
3. 此时lombok就对第一步骤得到的AST进行处理,找到注解所在类或者属性对应的语法树(AST),然后修改该语法树(AST),增加注解所定义的相应树节点。
4. javac使用修改后的抽象语法树(AST)生成字节码文件。

总结

使用lombok省略了一系列的繁杂的方法定义,开发时间更短,提高了代码的简洁性,同时也降低了代码的完整性和可读性,使用lombok需要考虑清楚其利弊。据我所知,weixin-java-toolsElastic-Job使用了此JAVA库。

参考文章

http://blog.csdn.net/dslztx/article/details/46715803

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值