region:
NA:
- envName: sandbox
envURL: http://localhost:8010
- envName: prod
envURL: http://localhost:8010
EU:
- envName: sandbox
envURL: http://localhost:8010
- envName: prod
envURL: http://localhost:8010
LA:
- envName: sandbox
envURL: http://localhost:8010
- envName: prod
envURL: http://localhost:8010
这是 yaml 文件,我想在 spring 引导中加载它。我可以帮助我如何在 spring 引导中加载此配置文件吗?我已经尝试过以下解决方案,但我想要更多动态方式,假设将来再有一个区域将添加名称为“IN”,它应该会自动加载。如果在 yaml 文件中添加了任何新区域,有什么方法可以自动加载它?注意:我不想在 yaml 更新时每次更新 Config 类。它应该自动加载。
@Component
@ConfigurationProperties("region")
public class Config {
private List<RegionInstances> NA;
private List<RegionInstances> LA;
private List<RegionInstances> EU;
//getters and setters
public static class RegionInstances extends HashMap<String, String>{
private String envName;
private String envURL;
//getters and setters
}
}
回答1
这必须工作才能获得 NA
区域:
@Configuration
@ConfigurationProperties("region")
public class Config {
private List<Map<String, String>> NA;
}