springboot配置绑定

现在有如下配置,需要绑定到java类中使用:

my-configuration:
  name: spring
  inner-config:
    inner-name: inner-spring

方式一

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
 * @Component : 将配置类加入到spring容器,才能够实现配置绑定
 *
 * @ConfigurationProperties : 标志着这个类中的属性是从配置文件中读取过来的
 *      value = prefix : 此类的配置在配置文件中的前缀
 */
@Data
@Component
@ConfigurationProperties("my-configuration")
public class MyConfiguration {
    private String name;
    private InnerConfig innerConfig;
    @Data
    public static class InnerConfig{
        private String innerName;
    }
}

方式二

使用场景:如果绑定配置的类是第三方包中的,那么无法去修改源码加上@Component注解,这个时候就需要下面这种方式。

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
//@Component
@ConfigurationProperties("my-configuration")
public class MyConfiguration {
    private String name;
    private InnerConfig innerConfig;
    @Data
    public static class InnerConfig{
        private String innerName;
    }
}
import org.springframework.context.annotation.Configuration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@Configuration
// @EnableConfigurationProperties : 指定使用类来绑定配置文件中的配置
@EnableConfigurationProperties(MyConfiguration.class)
public class MyConfig {
}

配置自动提示

1、pom.xml中引入依赖

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

2、重新编译项目
发现自定义的配置已经有了提示
在这里插入图片描述


版权声明:本文为weixin_42425970原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。