IDEA、Eclipse集成Lombok

340 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一、集成Lombok


IDEA集成Lombok

首先要安装Lombok的插件

File->Settings->Plugins

点击下图红框框内的按钮,搜索 Lombok Plugin

1552548714590

安装完成后,重启IDEA即可生效

1552548798150

Eclipse集成Lombok插件

下载Lombok.jar包,点击下载地址 下载 双击打开lombok.jar 在这里插入图片描述 点击Quit Installer完成安装 在这里插入图片描述 安装完成后,检查自己的Eclipse目录下有没有lombok.jar 在这里插入图片描述 同时检查Eclipse安装目录下的eclipse.ini文件里有没有多了一行环境(-javaagent:xxx\lombok.jar) 在这里插入图片描述 以上步骤都没有问题的话,重启Eclipse,完成安装。

二、项目中使用 Lombok


1)添加Lombok的依赖

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.6</version>
    <scope>provided</scope>
</dependency>


2)新增POJO

普通的POJO

public class UserEntity {
    private String username;
    private String passowrd;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassowrd() {
        return passowrd;
    }

    public void setPassowrd(String passowrd) {
        this.passowrd = passowrd;
    }
    
    @Override
    public String toString() {
        return super.toString();
    }
}

有了Lombok之后,我们可以使用Lombok中的@Data注解来写POJO

上面的POJO可以简化成如下的POJO

@Data
public class UserEntity {
    private String username;
    private String passowrd;
}

写个测试案例,测试@Data

    @Test
    public void test(){
        UserEntity userEntity = new UserEntity();
        userEntity.setUsername("用户");
        userEntity.setPassowrd("密码");
        System.out.println(userEntity);
    }

好使,输出

UserEntity(username=用户, passowrd=密码)

现在大家知道Lombok的好处了把,使代码更整洁!

三、Lombok注解

  • 上面的示例中,我们使用了@Data。下面我们看一下Lombok的注解具体用法 * val : 最终局部变量 * @NonNull : 让你不在担忧并且爱上NullPointerException * @CleanUp : 自动资源管理:不用再在finally中添加资源的close方法 * @Setter/@Getter : 自动生成set和get方法 * @ToString : 自动生成toString方法 * @EqualsAndHashcode : 从对象的字段中生成hashCode和equals的实现 * @NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor自动生成构造方法 * @Data : 自动生成set/get方法,toString方法,equals方法hashCode方法,不带参数的构造方法 * @Value : 用于注解final类 * @Builder : 产生复杂的构建器api类 * @SneakyThrows : 异常处理(谨慎使用) * @Synchronized : 同步方法安全的转化 * @Log : 支持各种logger对象,使用时用对应的注解,如:@Log4j