• Lombok 插件安装和使用


    引言

    以前的 Java 项目中,充斥着太多毫无技术含量的代码,比如类属性的 getter/setter/toString 方法,还有就是异常处理、I/O 流的关闭操作等。这些样板代码虽然可以通过 IDEA 自动生成,但是还是有些繁琐,而且影响代码的简洁和美观,为此 Lombok 插件应运而生。

    Lombok 安装

    maven 中引入相应的 Lombok 依赖包
    <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <scope>provided</scope>
                <optional>true</optional>
    </dependency>
    

    Lombok 的 provided 意思是设置 Lombok 只在编译阶段生效,不需要打入包中。Lombok 会在编译期将带 Lombok 注解的 Java 文件正确编译为完整的 Class 文件。

    IDEA 安装 Lombok 插件

    点击File-- Settings设置界面,点击 Plugins插件安装,在 Marketplace 插件市场中搜索 Lombok 插件,找到后进行下载安装

    IDEA 设置 Lombok

    点击File-- Settings设置界面,开启 AnnocationProcessors,如下:

    开启该项是为了让 Lombok 注解在编译阶段起到作用

    Lombok 注解

    Lombok 插件有很多不同功能注解,但使用频率最高的是 @Data 注解,这个注解集五个注解功能于一体,如下:

    • @Data:作用于类上,是以下注解的集合:@ToString @EqualsAndHashCode @Getter @Setter @RequiredArgsConstructor
    import lombok.*;
    import lombok.extern.log4j.Log4j;
    
    @Data
    public class TestDemo {
    private String name;
    private int age ; 
    private String email;
    private String address; 
    private String password;
    private boolean funny;
    }
    

    通过添加一个 @Data 注解,Lombok 插件会为我们自动生成构造器方法、setter/getter 方法、toString()方法等。

    • @Getter/@Setter
      作用类上,生成所有成员变量的 getter/setter 方法;作用于成员变量上,生成该成员变量的 getter/setter 方法。可以设定访问权限及是否懒加载等。

    • @ToString
      作用于类,覆盖默认的 toString() 方法,可以通过 of 属性限定显示某些字段,通过 exclude 属性排除某些字段。

    • @EqualsAndHashCode
      作用于类,覆盖默认的 equals 和 hashCode

    • @NonNull
      主要作用于成员变量和参数中,标识不能为空,否则抛出空指针异常。

    • @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor
      作用于类上,用于生成构造函数。有 staticName、access等属性。staticName属性一旦设定,将采用静态方法的方式生成实例,access属性可以限定访问权限。

    • @NoArgsConstructor
      生成无参构造器;

    • @RequiredArgsConstructor
      生成包含 final 和 @NonNull 注解的成员变量的构造器;

    • @AllArgsConstructor
      生成全参构造器

    • @Builder:作用于类上,将类转变为建造者模式

    • @Log:作用于类上,生成日志变量。针对不同的日志实现产品,有不同的注解

    作者:Binge
    本文版权归作者和博客园共有,转载必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    python常用运维脚本实例
    数据库优化方案整理
    Python第一章概述与环境安装
    九阴真经
    常用的kubectl命令
    第7篇管理存储资源
    第8篇NFS PersistentVolume
    第10篇用 ConfigMap 管理配置
    第11篇Kubernetes部署微服务电商平台
    第12篇Kubernetes 监控
  • 原文地址:https://www.cnblogs.com/binbingg/p/13854995.html
Copyright © 2020-2023  润新知