如何使用@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=Pattern1

com.test.standard.name2=Pattern2

com.test.standard.name3=Pattern3

com.hello.foo.enabled=true

回答:

我相信Spring Boot支持使用@ConfigurationProperties注释开箱即用地加载属性映射。

根据该文档,你可以加载属性:

my.servers[0]=dev.bar.com

my.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

回到顶部