引入 lombok 简化代码及相关 IDE 设置

简要介绍了 lombok 的特性, 以及如何在 maven 引入和 IDE 中的设置(包括Eclipse 及 Intellij IDEA)

目录
[隐藏]

使用 lombok 可以简化一些样板代码的编写, 下面说说如何启用它, 包括了 maven 及 IDE 中的设置(Eclipse 及 Intellij IDEA)

具体例子

开发中经常会遇到一些纯粹作为记录的类, 如 VO, DTO 之类的, 在以往, 需要给它们一一生成所谓的 getter 和setter.
虽然有 IDE 可以辅助快速生成这样方法, 可大量的这种简单的 get 和 set 方法的存在也是挺碍眼的, 可否简化呢?

答案是可以的, 方式就是借助 lombok 这个代理工具.

比如以下一个 User 类, 只需要引入 lombok 中的 @Data 注解, 就可以自动生成 get set 方法.

package net.xiaogd.demo.mybatis.entity;

import lombok.Data;

@Data
public class User {
    private int id;
    private String username;
    private String password;
    private String nickName;
    private String salt;
    private String token;
} 

其它地方就可以使用这些方法了, 是不是很方便呢?

@Test
public void testXmlDao() throws Exception {
    User user = userXmlDao.findUser("user01", "pass01");
    log.info("user: {}, {}", user.getUsername(), user.getPassword());
}

上面用到了 getUsername, getPassword 方法, 这些在源码中是没有的.

接下来具体说说怎么去引入它.

maven 依赖

首先在工程中需要引入 lombok 依赖:

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

配置在 pom.xml 中即可.

IDE 插件

有了 maven 依赖后, 考虑到平时在 IDE 中开发的需要, 还需要做一些设置才能让 IDE 支持 lombok 的特性, 下面分别说说 Eclipse 和 Intellij IDEA 中的设置.

在 Eclipse 中设置 lombok

由于没有相关插件, 在 Eclipse 中设置支持 lombok 稍微麻烦些, 不过也不是太复杂. 下面具体细说下.

第一步是找到 lombok.jar 这个文件.
在上一步在 maven 中增加了相应的依赖后, 相关的 jar 就已经下载到了本地 maven 的 repository 中.

比如在我的本机上就位于 "C:\Users\golden.m2\repository\org\projectlombok\lombok\1.18.8\lombok-1.18.8.jar":
windows maven repository lombok jar location

注: 我本地的用户名是 golden, 如果没有配置, 缺省的用户名通常为 Administrator, 则路径大概如下 "C:\Users\Administrator.m2\repository\org\projectlombok\lombok\1.18.8\lombok-1.18.8.jar"

另注: 这是 maven 在 windows 中的缺省路径, 如果你特别调整了 repository 的位置, 则改为相应的位置.

找到 jar 包后, 这其实是一个可以运行的 jar, 第二步双击运行它, 之后它会弹出一个 GUI 的设置页面, 如下:
lombok can't find IDE

默认情况下它会自动去寻找本机 eclipse 的安装位置, 如果找到了, 它就会列出来;

如果找不到(上图中即是提示没有找到), 也没有关系, 还可以自己手动指定:
eclipse lombok specify IDE location

比如我本地没有安装到缺省位置, 于是就通过 Specify location 按钮自己来指定, 选中有效的 Eclipse 程序目录后, 框中会出现一个条目并默认勾上:
eclipse install/update lombok

下一步就是点击 Install/Update, 成功之后提示如下:
eclipse lombok install successfully

以上过程参考: https://projectlombok.org/setup/eclipse

它提示接下来要执行的一些事项, 有三步:

  1. 在工程中引入 lombok.jar, 这个已经做到(add lombok.jar to your projects)
  2. 退出并重启 IDE, 以让设置生效(exit and start your IDE)
  3. 重新 build 工程(rebuild all projects)

还有一点特别提示, 大意为如果你使用了个性化的 -vm 参数来启动 Eclipse, 则你需要同时加入 -vmargs -javaagent:lombok.jar 参数(If you start Eclipse with a custom -vm parameter, you'll need to add: -vmargs -javaagent:lombok.jar as parameter as well.)

这个如果没对 Eclipse 做特殊的启动配置则可以忽略, 另外上述的设置过程中其实已经在 eclipse.ini 中加入了类似配置.

完成上述设置后, Eclipse 中就可以正常支持 lombok 的特性了.

在 Intellij IDEA 中安装 lombok 插件

在 Intellij IDEA 中支持 lombok 则较为简单, 因为有相关插件, 只需要在 Settings > plugins > Marketplace 中搜索找到 lombok 插件然后安装即可:
Intellij idea install lombok plugin

注: 由于我本地已经安装过了, 所以显示为 installed

同样的, 你可能需要重启 IDE 并重新 build 相关工程.

验证

想要验证 lombok 是否生效也很简单, 比如上述例子中的 @Data 注解, 会生成 getter 和 setter, 可以在其它类尝试调用这些 get set 方法, 如果没有报错, 则说明虽然在源码中没有相应的 get set 方法, 但在生成的 class 文件中, lombok 已经注入了这些方法.

在 Eclipse 的 Outline 视图中, 也可以简单验证这一点:
eclipse verify lombok getter setter in outline view

如图所示, 虽然源码中没有 get set 方法, 但在 Outline 视图中却已经有相关方法, 这说明 lombok 的 @Data 注解已经生效了.

关于 lombok 的引入及相应 IDE 支持的设置的介绍就到这里.

发表评论

电子邮件地址不会被公开。