我想阅读具有地图地图的弹簧属性文件
Posted
技术标签:
【中文标题】我想阅读具有地图地图的弹簧属性文件【英文标题】:I want to read spring properties file that has a map of maps 【发布时间】:2018-04-26 14:47:21 【问题描述】:我想要一个像下面这样的属性,它是地图的地图
propertymap =
key1:'subkey1:'subvalue1',subkey2:'subvalue2'',
key2:'subkey3:'subvalue3',subkey4:'subvalue4''
@Value("#$propertymap")
private Map<String,Map<String,String>> propertymap;
在我的配置类中使用了上述代码,但出现错误。请让我知道是否有办法做到这一点。
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private java.util.Map nested exception is org.springframework.beans.factory.BeanExpressionException: Expression parsing failed; nested exception is org.springframework.expression.spel.SpelParseException: EL1043E:(pos 17): Unexpected token. Expected 'rcurly()' but was 'identifier'
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
【问题讨论】:
【参考方案1】:我找到了方法,我只需要删除键后的 '
propertymap =
key1:
subkey1:'subvalue1',
subkey2:'subvalue2'
,
key2:
subkey3:'subvalue3',
subkey4:'subvalue4'
下面的代码将其拾取
@Value("#$propertymap")
private Map<String,Map<String,String>> propertymap;
【讨论】:
属性文件中必须有反斜杠 - 属性映射必须是多行的一个大字符串,例如key1:\ 等。以上是关于我想阅读具有地图地图的弹簧属性文件的主要内容,如果未能解决你的问题,请参考以下文章