文章目录

  • lombok是什么?
  • Lombok常用注解简介
  • idea安装lombok插件
  • idea创建demo-day-02项目

lombok是什么?

lombok是一个插件,它能通过注解帮我们消除那些必须要写但是重复的代码,比如setter、getter以及构造函数之类的方法。
试想一个场景,在项目开发中,我们往往需要定义大量的数据库实体或者某些工具Bean ,每一个Bean都需要我们编写 getter、setter、构造方法以及toString等方法,这是一个非常繁琐的过程。程序员的准则是做三遍以上的重复事情就必须想办法让它自动化了。所以今天介绍一个牛逼的插件lombok。

Lombok常用注解简介

  • @Data: 注解在类上,将类提供的所有属性都添加get、set方法,并添加equals、canEquals、hashCode和toString方法
  • @Setter: 注解在类上,为所有属性添加set方法,注解在属性上为该属性提供set方法
  • @Getter: 注解在类上,为所有的属性添加get方法,注解在属性上为该属性提供get方法
  • @NotNull: 在参数中使用时,如果调用时传了null值,就会抛出空指针异常
  • @Synchronized: 用于方法,可以锁定指定的对象,如果不指定,则默认创建一个对象锁定
  • @Log: 作用于类,创建一个log属性
  • @Builder: 使用builder模式创建对象
  • @NoArgsConstructor: 创建一个无参构造函数
  • @AllArgsConstructor: 创建一个全参构造函数
  • @ToStirng: 创建一个toString方法
  • @Accessors(chain = true): 使用链式设置属性,set方法返回的是this对象。
  • @RequiredArgsConstructor: 创建对象
  • @UtilityClass: 工具类
  • @ExtensionMethod: 设置父类
  • @FieldDefaults: 设置属性的使用范围,如private、public等,也可以设置属性是否被final修饰
  • @EqualsAndHashCode: 重写equals和hashcode方法
  • @toString: 创建toString方法
  • @Cleanup: 关闭流、连接点

idea安装lombok插件

springboot 重写header springboot 重写bean的@setter方法_java


springboot 重写header springboot 重写bean的@setter方法_intellij-idea_02

idea创建demo-day-02项目

springboot 重写header springboot 重写bean的@setter方法_ide_03

  • pom.xml引入lombok包
<dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
  • 新建person类

    代码如下:
package com.demo.model;

public class Person {
    private String id;
    private String name;
    private String age;
    private String sex;

    @Override
    public int hashCode() {
        return super.hashCode();
    }

    public Person(String id, String name, String age, String sex) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "Person{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", age='" + age + '\'' +
                ", sex='" + sex + '\'' +
                '}';
    }

    public String getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }


}

以上可以看出来,我们需要写很多代码,那我们要是使用lombok呢?
代码改造如下:

package com.demo.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

//自动生成set/get方法,toString方法,equals方法,hashCode方法,不带参数的构造方法 
@Data 
//自动生成构造方法
@AllArgsConstructor 
//自动生成构造方法 
@NoArgsConstructor 
public class Person {
    private String id;
    private String name;
    private String age;
    private String sex;
}

使用了lombok看起来是不是更加简洁美观了。