Lombok插件

  1. 什么是Lombok插件?

    Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或eques方法,同时可以自动化日志变量。

  2. 使用

  • 安装插件

    打开idea的设置,点击Plugins,点击Browse repositories,在弹出的窗口中搜索lombok,然后安装即可。

  • 添加依赖

      <dependency>
      	<groupId>org.projectlombok</groupId>
      	<artifactId>lombok</artifactId>
      	<version>xxx</version>
      </dependency>
    
  1. 测试

    //不使用Lombok,自己编写set,get,toString,有参,无参构造方法
    public class User{
    
        private int id;
    
        private String username;
    
        private int age;
    
        public User() {
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", username='" + username + '\'' +
                    ", age=" + age +
                    '}';
        }
    }
    //使用lombok之后,加了@Date注解之后,自动生成set,geu,tostring,equals,hashcode等方法
    @Data
    public class User{
    
        private int id;
    
        private String username;
    
        private int age;
    
    }
    
    
  2. 常用注解

    @Setter 注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。
    @Getter 使用方法同上,区别在于生成的是getter方法。
    @ToString 注解在类,添加toString方法。
    @EqualsAndHashCode 注解在类,生成hashCode和equals方法。
    @NoArgsConstructor 注解在类,生成无参的构造方法。
    @RequiredArgsConstructor 注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。
    @AllArgsConstructor 注解在类,生成包含类中所有字段的构造方法。
    @Data 注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
    @Slf4j 注解在类,生成log变量,严格意义来说是常量。private static final Logger log = LoggerFactory.getLogger(UserController.class);

  3. 优缺点

    • 能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,提高了一定的开发效率

    • 让代码变得简洁,不用过多的去关注相应的方法

    • 属性做修改时,也简化了维护为这些属性所生成的getter/setter方法等

    • 不支持多种参数构造器的重载(可以自己编写)

    • 虽然省去了手动创建getter/setter方法的麻烦,但大大降低了源代码的可读性和完整性,降低了阅读源代码的舒适度

posted @ 2024-05-11 13:04  Hanyta  阅读(635)  评论(0编辑  收藏  举报