前几篇我们讲解了@ConfigurationProperties和@Value,我们再来说几个
@PropertySource
@PropertySource:@ConfigurationProperties默认是从全局配置文件中获取值,而@PropertySource则可以从指定的配置文件中获取值
我们来实验一下
先在resources下建立一个person.properties文件,然后把全局配置文件下的有关person的代码复制过去,把全局配置文件中的这段代码注释掉
person.last-name=张三
person.age=20
person.boss=false
person.birth=2019/12/12
person.maps.k1=v1
person.maps.k2=v2
person.lists=a,b,c
person.dog.name=white
person.dog.age=10
然后我们加上@PropertySource
/**
* 将配置文件中配置的没一个属性的值映射到这个组建中
* @configurationproperties:告诉springboot将本类中的所有属性和配置文件中相关的配置进行绑定
* prefix="person"配置文件中person下面的所有属性进行一一映射
* 只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties的功能
*/
@PropertySource(value = {
"classpath:person.Properties"})
@Component
@ConfigurationProperties(prefix="person")
//@Validated