SpringBoot整合Lombok及使用

Lombok项目是一个Java库,它会自动插入您的编辑器和构建工具中,从而为您的Java增光添彩。永远不要再编写另一个getter或equals方法,带有一个注释的类将具有功能全面的生成器,自动执行日志记录变量等等。

下载和设置

首先打开IDEA中设置,找到plugin,搜索lombok,点击install下载并应用,最后记得重启IDEA。或者你也可以官网下载安装https://projectlombok.org/download

添加注解支持 Annotation Processors

在maven仓库搜索下载(https://mvnrepository.com)并添加Lombok依赖到pom.xml



    org.projectlombok
    lombok
    1.18.8


注解介绍

@Data : 自动生成set/get方法,toString方法,equals方法,hashCode方法,不带参数的构造方法 
@NonNull : 让你不在担忧并且爱上NullPointerException 
@CleanUp : 自动资源管理:不用再在finally中添加资源的close方法 
@Setter/@Getter : 自动生成set和get方法 
@ToString : 自动生成toString方法 
@EqualsAndHashcode : 从对象的字段中生成hashCode和equals的实现 
@NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor 
自动生成构造方法 
@Value : 用于注解final类 
@Builder : 产生复杂的构建器api类,可以让你以下面显示的那样调用你的代码,来初始化你的实例对象
@SneakyThrows : 异常处理(谨慎使用) 
@Synchronized : 同步方法安全的转化 
@Log : 支持各种logger对象,使用时用对应的注解,如:@Log4

@Data和@Log注解用的较多
未使用Lombok管理时实体类User

public class User {
    private Integer id;
    private String name;
    private String pwd;
    private Double score;

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public Double getScore() {
        return score;
    }

    public void setScore(Double score) {
        this.score = score;
    }

    public User() {
    }

    public User(Integer id, String name, String pwd, Double score) {
        this.id = id;
        this.name = name;
        this.pwd = pwd;
        this.score = score;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        User user = (User) o;
        return Objects.equals(id, user.id) &&
                Objects.equals(name, user.name) &&
                Objects.equals(pwd, user.pwd) &&
                Objects.equals(score, user.score);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, name, pwd, score);
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", pwd='" + pwd + '\'' +
                ", score=" + score +
                '}';
    }
}

添加@Data后

@Data
public class User {
    private Integer id;
    private String name;
    private String pwd;
    private Double score;
}

然后实例化User之后,里面所有方法都可以使用,添加UserController

@RestController
@Log4j2
public class UserController {

    //private final Logger logger = LogManager.getLogger(this.getClass());

    @GetMapping("/test")
    public User testUser() {
        User user = new User();
        user.setName("zhangsan");
        user.setPwd("123");
        user.setScore(2.0D);
        System.out.println(user.toString());

        log.info("info excute");
        log.warn("warn excute");
        return user;
    }
}

在applicaiton.properties中添加日志输出位置

logging.file = logs/spring-boot-test-lombok.log

浏览器输入localhost:8080/test

补充:在User类上添加@Builder

User user = User.builder()
                .id(1)
                .name("aaa")
                .pwd("bbb")
                .score("bbb")
                .build();

System.out.println(user);

你可能感兴趣的:(SpringBoot整合Lombok及使用)