Lombok、devtools工具、自定义配置提示的使用详解

Lombok的作用主要是简化JavaBean,使用Lombok之后,可以不用写JavaBean中的setter、getter、toString及构造方法。除此之外,还可以注入log日志对象。下面分别对 没有使用Lombok 和 使用Lombok后 的代码做说明。

1、在使用Lombok之前

在使用Lombok之前创建一个javaBean实体类需要为javaBean实体类写上setter、getter、toString及构造方法。以 User 为例,下面创建一个 User 类,属性分别是 id、name、age、salary,代码如下:

public class User {
    private Integer id;
    private String name;
    private Integer age;
    private Double salary;

    public User() {
    }

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

    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 Integer getAge() {
        return age;
    }

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

    public Double getSalary() {
        return salary;
    }

    public void setSalary(Double salary) {
        this.salary = salary;
    }

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

2、使用Lombok之后:

Lombok的使用步骤:

01、在pom文件中天添加 Lombok 依赖,如下:

    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.22</version>
    </dependency>

02、在Idea中添加 Lombok 插件

Idea2021版本之前:找到idea的file-----settings——plugin选项——搜索Lombok——安装

Idea2021版本之后:找到idea的file-----settings——plugin选项——搜索Hrisey Plugin——安装

安装完后重启IDEA即可。

03、 使用 Lombok 之后,完全可以使用注解代替 setter、getter、toString及构造方法。

  • 使用注解 @Data代替 setter、getter,
  • 使用注解@ToString 代替toString方法,
  • 使用注解@NoArgsConstructor() 代替无参构造函数
  • 使用注解@AllArgsConstructor() 代替有参构造函数
  • 使用@Slf4j导入log对象

以 User 为例,下面创建一个 User 类,属性分别是 id、name、age、salary,代码如下:

@Data
@ToString
@NoArgsConstructor
@AllArgsConstructor
@Slf4j
public class User {
    private Integer id;
    private String name;
    private Integer age;
    private Double salary;
    public void showInfo(){
        log.info(String.format("user info is %d + %s + %d + %f", id,name,age,salary));
    }
}

更多了解:https://blog.csdn.net/m0_37989980/article/details/126324284

3、devtools工具使用

devtools工具是帮助我们进行热部署的,当我修改代码后,无论是前端还是后端吗,只需要配置此工具,则可以进行热部署,不需要每次重新启动服务。步骤是
01、添加devtools依赖

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-devtools</artifactId>
  <version>2.2.6.RELEASE</version>
</dependency>

02、 修改代码后按 ctrl + F9   (== Build Project :编译代码)即可,无需重启服务

4、自定义配置类的提示

       在自定义starter时,一般都会添加spring-boot-configuration-processor依赖,这是为什么呢?它的作用是什么?
       答:

       ①. 将自定义的配置类生成配置元数据,所以在引用自定义STARTER的工程的YML文件中,给自定义配置初始化时,会有属性名的提示。

       ②. 确保在使用@ConfigurationProperties注解时,可以优雅的读取配置信息,引入该依赖后,IDEA不会出现“spring boot configuration annotation processor not configured”的错误。

       在实际开发过程中会发现“SPRING相关配置”在点击的时候可以跳转到对应的定义配置类中,而自定义的配置类在application.properties或者application.yml使用时候,不会进行自动提示。且无法点击进入自定义配置类。如下:spring.datasource.type可以点击,可以进入自定义配置类。

# SPRING相关配置
spring:
  # 数据源
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: org.postgresql.Driver
    url: jdbc:mysql://localhost:3306/mybatis
    username: root
    password: root

       为此,我们可以按官方文档提示,为自己自自定义的配置类添加自动提示的配置。自定义配置类我们以User类为例,User类代码如下:

@Slf4j
@Data
@ToString
@Component
@ConfigurationProperties(prefix = "user")
public class User {
    private Integer id;
    private String name;
    private Integer age;
    private Double salary;

    public User() {
    }

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

        之所以能自动提示,是因为在spring-configuration-metadata.json文件中生成了配置的元数据,为什么自定义的未生成呢?是因为自定义的配置所在工程的pom文件中没有添加spring-boot-configuration-processor依赖,spring-boot-configuration-processor的作用是在工程编译时,根据配置类自动生成配置类的元数据信息,即META-INF目录下的spring-configuration-metadata.json文件,从而可以告诉Spring容器这个JAR包中有哪些自定义的配置,我们需要添加以下依赖。

 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-configuration-processor</artifactId>
     <optional>true</optional>
 </dependency>




 <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
           //我们只用于开发,打包时候不进行打包
           <excludes>
              <exclude>
                   <groupId>org.springframework.boot</groupId>
                   <artifactId>spring-boot-configuration-processor</artifactId>
              </exclude>
            </excludes>
      </configuration>
 </plugin>

        加入该依赖后执行:重新构建项目,可以看到预期结果,生成了spring-configuration-metadata.json。

在配置文件中写入user会自动提示。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值