如何使用@Value Spring注释注入地图?
如何在Spring中使用@Value批注将值从属性文件注入Map中?
我的Spring Java类是我尝试使用$,但收到以下错误消息
无法自动装配字段:私有java.util.Map Test.standard;
嵌套异常是java.lang.IllegalArgumentException
:无法解析字符串值“ $ {com.test.standard}”
中的占位符'com.test.standard'
@ConfigurationProperty("com.hello.foo")public class Test {
@Value("${com.test.standard}")
private Map<String,Pattern> standard = new LinkedHashMap<String,Pattern>
private String enabled;
}
我在.properties文件中具有以下属性
com.test.standard.name1=Pattern1com.test.standard.name2=Pattern2
com.test.standard.name3=Pattern3
com.hello.foo.enabled=true
回答:
我相信Spring Boot支持使用@ConfigurationProperties
注释开箱即用地加载属性映射。
根据该文档,你可以加载属性:
my.servers[0]=dev.bar.commy.servers[1]=foo.bar.com
像这样变成豆子:
@ConfigurationProperties(prefix="my")public class Config {
private List<String> servers = new ArrayList<String>();
public List<String> getServers() {
return this.servers;
}
}
我之前使用过@ConfigurationProperties功能,但没有加载到地图中。你需要使用@EnableConfigurationProperties批注才能启用此功能。
以上是 如何使用@Value Spring注释注入地图? 的全部内容, 来源链接: utcz.com/qa/421487.html