美文网首页
propertiesbean配置项bean

propertiesbean配置项bean

作者: 莫看烟雨 | 来源:发表于2018-08-11 17:02 被阅读0次

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

相关文章

网友评论

      本文标题:propertiesbean配置项bean

      本文链接:https://www.haomeiwen.com/subject/oevdbftx.html