将 HashMap 加载到嵌套配置 bean 会抛出绑定异常
Loading HashMap to a nested configuration bean throws Binding Exception
除尝试添加其他属性以加载散列映射值外,一切正常
属性 添加为:
demoapp.security.policies={'KEY1': 'value1', 'KEY2': 'value3', 'KEY3': 'value5'}
并在 Secutiry 内部 class 中添加了另一个变量,如下所示:
private Map<String, String> policies;
public Map<String, String> getPolicies() {
return policies;
}
public void setPolicies(Map<String, String> policies) {
this.policies = policies;
}
但这会引发错误:
Caused by: org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type [java.util.Map<java.lang.String, java.lang.String>]
有趣的是,如果我将其置于正常(非嵌套)配置中 class 它对我来说工作正常。
这里出了什么问题,请提出任何建议
绑定到地图时,您绑定的是嵌套 属性,因此您需要单独指定属性。
属性文件:
demoapp.security.policies.KEY1=value1
demoapp.security.policies.KEY2=value3
demoapp.security.policies.KEY3=value5
YAML 文件:
demoapp.security.policies:
"[KEY1]": value1
"[KEY2]": value3
"[KEY3]": value5
除尝试添加其他属性以加载散列映射值外,一切正常
属性 添加为:
demoapp.security.policies={'KEY1': 'value1', 'KEY2': 'value3', 'KEY3': 'value5'}
并在 Secutiry 内部 class 中添加了另一个变量,如下所示:
private Map<String, String> policies;
public Map<String, String> getPolicies() {
return policies;
}
public void setPolicies(Map<String, String> policies) {
this.policies = policies;
}
但这会引发错误:
Caused by: org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type [java.util.Map<java.lang.String, java.lang.String>]
有趣的是,如果我将其置于正常(非嵌套)配置中 class 它对我来说工作正常。
这里出了什么问题,请提出任何建议
绑定到地图时,您绑定的是嵌套 属性,因此您需要单独指定属性。
属性文件:
demoapp.security.policies.KEY1=value1
demoapp.security.policies.KEY2=value3
demoapp.security.policies.KEY3=value5
YAML 文件:
demoapp.security.policies:
"[KEY1]": value1
"[KEY2]": value3
"[KEY3]": value5