SpringBoot @Value与@PropertySource操作配置文件

版权声明:本文为博主原创文章,转载请注明出处 浅然的专栏 https://blog.csdn.net/w_linux/article/details/82119736

一、场景简述

笔者在SpringBoot框架中希望获取properties配置文件中的属性值,来实现隐藏配置信息暴露在代码中,并且在多个properties配置文件下来指定获取哪个属性值。所以就使用了@Value注解来获取配置文件的属性值,@PropertySource来指定配置文件。

 

二、场景实现

application.properties的配置信息

spring.data.mongodb.database=test
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017

创建一个实体类如下

@PropertySource({"classpath:application.properties"})
@Component
public class MongoDateConfig {

    /*
     * 属性
     */
    @Value("${spring.data.mongodb.database}")
    private String dbname;

    @Value("${spring.data.mongodb.host}")
    private String host;

    @Value("${spring.data.mongodb.port}")
    private Integer port;

    //setter or getter 

    //toString
}

以上只要在相应位置将它的Bean引入(使用@Autowired),使用get方法即可获取配置文件中相应的属性值。

若有多个properties配置文件,则使用如下方法

如果有不同配置文件,相同属性名的话,则取值为最后一个配置文件中的值

@PropertySource({"classpath:config/my.properties","classpath:config/config.properties"})

若一个properties配置文件中需要有多个数据源,则使用如下方法

在properties配置文件中配置

spring.data.mongodb.primary.database = test
spring.data.mongodb.primary.host=localhost
spring.data.mongodb.primary.port=27017

spring.data.mongodb.secondary.database = test2
spring.data.mongodb.secondary.host=localhost
spring.data.mongodb.secondary.port=27017

猜你喜欢

转载自blog.csdn.net/w_linux/article/details/82119736