今天整合springboot时候,在person类中用@ConfigurationProperties(prefix = "testPerson")取application-dev.yml文件的值时,发现取出来的值都是空值,也没报错。
而在HelloController类中用用@Value("testValue")取值却成功的从application-dev.yml文件中取出来了。
application-dev.yml文件内容:
testValue: test
testEL: "pageSize:${testValue}"
testPerson:
name: test
age: 123
id: 456
纠结了一会,干脆换成了properties配置,还是用@ConfigurationProperties取值,结果在application.properties文件中的数据却取出来了。
仔细看了下区别。感觉可能是文件名的锅。我把文件名从application-dev.ym改成application.ym,结果@ConfigurationProperties取成功了。
原来@ConfigurationProperties和@Value不一样,前者默认从application文件中取值,后者似乎没有这个限制。
@ConfigurationProperties在其他配置文件取值时候,需要@PropertySource("classpath:config/xxx.yml") 配置文件路径 .
---------------------