【发布时间】:2017-11-16 08:30:55
【问题描述】:
我正在从我的 Spring Boot 服务中的 application.yml 加载自定义配置。
我已经通过bean类注释如下,
@Component
@ConfigurationProperties("app")
public class ContinentConfig {
private Map<String, List<Country>> continents = new HashMap<String, List<Country>>();
//get/set/tostring methods
}
我的自定义类 Country 包括 2 个字段,
public class Country {
String name;
String capital;
//get/set/tostring methods
}
在 application.yml 我有如下,
app:
continents:
Europe:
- name: France
capital: Paris
Asia:
- name: China
capital: Beijing
通过上述设置,我可以从 application.yml 加载配置。
我现在想将配置提取到同一 src/main/resources 文件夹中的单独 continentconfig.yml 中。因此,我将自定义配置移到了continentconfig.yml,而将server.port 等其他属性留在了application.yml 中。
continentconfig.yml 的内容与我之前在 application.yml 中的内容相同。
我还在 ContinentConfig 类中添加了以下注释,
@Component
@ConfigurationProperties("app")
@EnableConfigurationProperties
@PropertySource(value="classpath:continentconfig.yml")
public class ContinentConfig {
}
在此更改之后,我看到配置没有从 continentconfig.yml 加载到 ContinentConfig bean。
有人可以帮忙解决这个问题吗?
【问题讨论】:
标签: spring-boot configuration properties-file