Java 加载了ConfigurationProperties的嵌套映射的键以其各自的索引作为前缀
使用spring boot,我试图使用注释@ConfigurationProperties(“oauth2.discovery”)加载配置 除了嵌套映射的键没有加载配置文件内容,而是以各自的索引作为前缀之外,其他一切都可以正常工作 这是用于加载配置的代码: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
@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