跳转至

Lombok库

Lombok是一个Java库,通过注解的方式自动生成代码,减少模板代码的编写,提高开发效率。

作用

  • 减少样板代码的编写
  • 提高代码可读性
  • 降低维护成本
  • 减少代码量

传统JavaBean写法

public class User {
    private String name;
    private int age;
    private String email;

    // 无参构造函数
    public User() {
    }

    // 全参构造函数
    public User(String name, int age, String email) {
        this.name = name;
        this.age = age;
        this.email = email;
    }

    // getter和setter方法
    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    // toString方法
    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", email='" + email + '\'' +
                '}';
    }

    // equals和hashCode方法
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        User user = (User) o;
        return age == user.age &&
                Objects.equals(name, user.name) &&
                Objects.equals(email, user.email);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age, email);
    }
}

Lombok写法

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

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private String name;
    private int age;
    private String email;
}

环境配置

Maven配置

pom.xml中添加以下依赖:

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

IntelliJ IDEA配置

  1. 安装Lombok插件
  2. 打开 Settings (Preferences)
  3. 选择 Plugins
  4. 搜索 "Lombok"
  5. 安装插件并重启IDE

  6. 启用注解处理

  7. 打开 Settings (Preferences)
  8. 选择 Build, Execution, Deployment > Compiler > Annotation Processors
  9. 勾选 "Enable annotation processing"

Lombok注解说明

注解 作用 替代的传统代码
@Data 生成所有字段的getter/setter、toString、equals、hashCode方法 所有字段的getter/setter、toString、equals、hashCode方法
@Getter 生成所有字段的getter方法 所有字段的getter方法
@Setter 生成所有字段的setter方法 所有字段的setter方法
@NoArgsConstructor 生成无参构造函数 无参构造函数
@AllArgsConstructor 生成全参构造函数 全参构造函数
@RequiredArgsConstructor 生成包含final字段的构造函数 包含final字段的构造函数
@ToString 生成toString方法 toString方法
@EqualsAndHashCode 生成equals和hashCode方法 equals和hashCode方法
@Builder 实现建造者模式 建造者模式相关代码
@Slf4j 自动创建日志对象 private static final Logger log = LoggerFactory.getLogger(XXX.class)
@Value 生成不可变类(所有字段都是final) final字段、getter方法、全参构造函数等

注意事项

  1. Lombok注解在编译时生成代码,不会影响运行时性能
  2. 需要IDE安装Lombok插件才能正常使用
  3. 团队开发时,需要确保所有成员都安装了Lombok插件
  4. 某些特殊场景可能需要手动编写代码,不要过度依赖Lombok
  5. 建议在项目中统一Lombok的版本,避免版本不一致导致的问题