yaml - 我正在尝试在 application.yml 文件中加载列表列表

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;
}

相似文章

最新文章