用ConfigurationProperties加载的嵌套映射的键以它们各自的索引为前缀



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

这是我的应用程序。yml

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

使用DiscoveryConfigs加载应用程序。yml我得到了以下内容:

(IntellIj中的调试器视图(
端点={LinkedHashMap@10957}大小>=3
"0.public"->quot/getPublic">
"1.对于RoleA"->quot/getForRoleA">
"2.对于RoleB"->quot/getForRoleB";

其中键是例如"0.public">而不是"strong>";"公共">

所以我肯定我错过了什么,但我不知道是什么。。。

在spring.io上检查绑定映射的描述

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

最新更新