Spring Boot整合Lombok

  Project Lombok 是一个 Java 库,可自动插入您的编辑器并构建工具,为您的 Java 增添趣味。     永远不要再编写另一个 getter 或 equals 方法,通过一个注释,您的类就有一个功能齐全的构建器,自动化您的日志变量等等。                                                                                                       ----摘自Project Lombok官网   简单地说,Project Lombok就是用来消除那些必写且重复的代码。比如,setter、getter、constructor等方法。   步骤1:Lombok的安装   IDEA-->File-->Settings-->Plugins--Marketplace,搜索Lombok,点击右侧下载,下载完成重启即可,如图:   Spring Boot整合Lombok Lombok已安装成功。

  步骤2:新建项目并引入Lombok依赖  
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.6</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.misu</groupId>
    <artifactId>springboot-lombok</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>springboot-lombok</name>
    <description>SpringBoot整合Lombok</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.22</version>
            <scope>provided</scope>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
  步骤3:User实体类,使用了Lombok的注解  
package com.misu.entity;

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

/**
 * @author Tiramisu
 * @version 1.0.0
 * @since 2021/10/22 15:38
 **/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {

    private Integer id;

    private String name;

    private String password;
}

 

步骤4:Controller  
package com.misu.controller;

import com.misu.entity.User;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author qinjie
 * @version 1.0.0
 * @since 2021/10/22 15:42
 **/
@RestController
@RequestMapping("/user")
@Slf4j  // Lombok注解,可用于打印日志
public class UserController {

    @GetMapping("/get")
    public User getUser() {
        User user = new User();
        user.setId(1);
        user.setName("Tiramisu");
        user.setPassword("123456");
        log.info(user.toString());
        return user;
    }
}

 

步骤5:地址栏输入http://localhost:8080/user/get,如图:   Spring Boot整合Lombok 从上图可以看出,User实体类中没有写相应的setter和getter方法,但是在UserController中我们却可以使用User实体类的setter方法。这就是Lombok的魅力所在:通过使用Lombok的注解,我们可以消除那些必须写但是重复的代码,使我们的代码更加简洁、优雅。   Tips:   User实体类中之所以可以使用getter/setter方法,是因为Lombok在编译阶段就为User实体类生成了相应的getter/setter方法。

 

Lombok常用注解:  
@Data	生成getter/setter/toString/equals/hashcode/不带参数的constructor等方法
@NonNull	让你不再担忧并且爱上NullPointerException
@CleanUp	自动资源管理,不用在finally中添加资源的close方法
@Setter/@Getter	生成set和get方法
@ToString	生成toString方法
@EqualsAndHashCode	从对象的字段中生成equals和hashcode的实现
@@NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor	自动生成构造方法
@Value	用于注解final类
@Builder	产生复杂的构建器api类
@SneakyThrows	异常处理(谨慎使用)
@Synchronized	同步方法安全的转化
@Log	支持各种logger对象,使用时用对应的注解,如:@Slf4j 

 

 

PS:项目源码地址:https://gitee.com/itira/spring-boot.git

 

上一篇:Java工具篇之lombok


下一篇:Lombok使用详解