SpringBoot自定义配置的正确使用姿势

2019-10-22  本文已影响0人  千淘萬漉

Springboot中把配置文件的键值读取到程序中的方法有很多,以前常用@Value或者@Envrionment形式去获取,如果参数简便也可以满足需求,但是并不推荐这样的做法,属性装配的时候采用@ConfigurationProperties 配置形式可以实现松散绑定,同时还能在配置注入容器时进行数据校验,功能更为强大灵活。步骤主要三步:

1.引入MAVEN依赖

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

2.属性绑定

定义好Bean类对象与配置的映射关系,比如我这里有一个容器线程池参数配置属性类,可以设定默认值

@Data
@ConfigurationProperties(prefix="excutor")
public class ExcutorProperties {
    private int corePoolSize = 5;
    private int maxPoolSize = 10;
    private int queueCapacity = 64;
}

同时在yml或者properties配置文件中配置相应的键值,松散绑定即可,容器会优先读取配置文件中配置值,覆盖属性上的默认值:

excutor:
  core-pool-size: 6
  max-pool-size: 20
  queueCapacity: 100

3.容器注入

主要有三种方式:

@Data
@Component
@ConfigurationProperties(prefix="excutor")
public class ExcutorProperties {
@Configuration
public class ExcutorConfiguration {
    @Bean
    public ExcutorProperties excutorProperties() {
        return new ExcutorProperties();
    }
}

完成注入以后,即可在Spring容器中使用该配置对象的值。

source: Spring Boot 2.0 @ConfigurationProperties 使用

上一篇下一篇

猜你喜欢

热点阅读