propertiesbean配置项bean

ConfigurationProperties注解可以很方便的把一些配置文件转化为一个bean,

基本用法如下

@Component
@ConfigurationProperties("redis")
public class RedisProp {
    private String host;
    private String port;
    private String password;

  // getter && setters....
}

yml配置文件如下:

redis:
  host: 127.0.0.1
  port: 6808
  password: pwd

需要确保maven中有如下依赖:

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

configuration-processor的作用是maven编译时自动生成spring-configuration-metadata.json文件。

初始化bean

第一种方法:使用Component注解
@Component
@ConfigurationProperties("redis")
public class RedisProp {
}

第二种方法:使用EnableConfigurationProperties
@Configuration
@EnableConfigurationProperties(RedisProp.class)
public class MyConfiguration {
}

使用外部bean

当使用jar包中的bean时,我们是无法进行上述操作的,这种情况下可以这么处理:

    @Bean
    @ConfigurationProperties("redis1")
    public GenericObjectPoolConfig redis1(){
        return new GenericObjectPoolConfig();
    }

    @Bean
    @ConfigurationProperties("redis2")
    public GenericObjectPoolConfig redis2(){
        return new GenericObjectPoolConfig();
    }

配置文件的查找顺序

@ConfigurationProperties(prefix="person")
public class OwnerProperties {
private String firstName;
public String getFirstName() {
return this.firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
}

firstName的查找顺序如下:

person.firstName
person.first-name
person.first_name
PERSON_FIRST_NAME
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容