如何使用Spring中的@Value注解从properties文件将值注入到Map中?
我的Spring Java类是,我尝试使用$,但得到以下错误消息:
无法自动连线字段:private 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
8条答案
按热度按时间3phpmpom1#
您可以使用
@Value
注解将值从属性文件注入到Map中,如下所示。属性文件中的属性。
在你的代码里。
注意作为注解一部分的主题标签。
lp0sw83n2#
我相信Sping Boot 支持使用@ConfigurationProperties annotation开箱即用地加载属性Map。
根据文档,您可以加载属性:
像这样的bean:
我以前使用过@ConfigurationProperties功能,但没有加载到map中。您需要使用@EnableConfigurationProperties annotation来启用此功能。
这个特性的一个很酷的地方是你可以验证你的属性。
f0ofjuux3#
我有一个简单的Spring Cloud Config代码
就像这样:
在application.properties
spring.data.mongodb.db1=mongodb:// email protected(https://stackoverflow.com/cdn-cgi/l/email-protection)
spring.data.mongodb.db2=mongodb:// email protected(https://stackoverflow.com/cdn-cgi/l/email-protection)
阅读
使用
qyzbxkaa4#
您可以使用
@Resource
注解将.properties
作为Map注入到类中。如果你正在使用**
XML based configuration
,**然后在你的spring配置文件中添加下面的bean:对于,基于注解:
然后,您可以在应用程序中将它们作为Map:
i86rm4rw5#
以下为我工作:
SpingBoot 2.1.7.发布
YAML属性(注意值由单引号进行源化)
在Java/Kotlin中,使用注解字段(注意使用#)(对于Java,不需要使用''转义'$')
vltsax256#
要使用YAML实现这一点,请执行以下操作:
2w2cym1i7#
我们是这样做的。两个示例类如下:
要从属性文件提供kafkaConsumer配置,您可以用途:mapname[key]=值
要从yaml文件提供kafkaConsumer配置,您可以使用“[key]":value在application.yml文件中:
lo8azlld8#
你可以使用下面的代码。
下面的代码为
application.yml
要使用
@Value
注解访问这些键和值,请使用以下Java代码。