Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 加载了ConfigurationProperties的嵌套映射的键以其各自的索引作为前缀_Java_Spring Boot_Dictionary - Fatal编程技术网

Java 加载了ConfigurationProperties的嵌套映射的键以其各自的索引作为前缀

Java 加载了ConfigurationProperties的嵌套映射的键以其各自的索引作为前缀,java,spring-boot,dictionary,Java,Spring Boot,Dictionary,使用spring boot,我试图使用注释@ConfigurationProperties(“oauth2.discovery”)加载配置 除了嵌套映射的键没有加载配置文件内容,而是以各自的索引作为前缀之外,其他一切都可以正常工作 这是用于加载配置的代码: @ConfigurationProperties("oauth2.discovery") public class DiscoveryConfigs { private Map<String, Discov

使用spring boot,我试图使用注释@ConfigurationProperties(“oauth2.discovery”)加载配置

除了嵌套映射的键没有加载配置文件内容,而是以各自的索引作为前缀之外,其他一切都可以正常工作

这是用于加载配置的代码:

@ConfigurationProperties("oauth2.discovery")
public class DiscoveryConfigs {

    private Map<String, DiscoveryConfigs.DiscoveryConfig> config;

    public Map<String, DiscoveryConfigs.DiscoveryConfig> getConfig() {
        return this.config;
    }

    public void setConfig(Map<String, DiscoveryConfigs.DiscoveryConfig> discovery) {
        this.config = discovery;
    }

    public static class DiscoveryConfig {
        private String name;
        private Map<String, String> endpoints;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public Map<String, String> getEndpoints() {
            return endpoints;
        }

        public void setEndpoints(Map<String, String> endpoints) {
            this.endpoints = endpoints;
        }
    }
}
使用DiscoveryConfigs加载应用程序。yml我得到了以下内容:

(IntellIj中的调试器视图)
端点={LinkedHashMap@10957}大小>=3
“0.public”->“/getPublic”
“1.forRoleA”->“/getForRoleA”
“2.forRoleB”->“/getForRoleB”

其中键是例如“0.public”而不是“public”


因此,我确信我错过了一些东西,但我不知道是什么…

请查看spring.io上的描述。以下方面应起作用:

oauth2:
  discovery:
    config:
      affiliation:
        name: affiliation-service
        endpoints:
          public: /getPublic
          forRoleA: /getForRoleA
          forRoleB: /getForRoleB
oauth2:
  discovery:
    config:
      affiliation:
        name: affiliation-service
        endpoints:
          public: /getPublic
          forRoleA: /getForRoleA
          forRoleB: /getForRoleB