SpringBoot @Value與@PropertySource操作配置檔案
阿新 • • 發佈:2019-02-08
一、場景簡述
筆者在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