@Value注释用于从属性文件中读取Map
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Value注释用于从属性文件中读取Map相关的知识,希望对你有一定的参考价值。
我的Java有这个
@Value("#{${validators}}")
private Map<String,String> validators;
属性文件有这个
validators={AlphabetValidator:'AlphabetValidator',NumberValidator:'NumberValidator'AlphaNumericValidator:'AlphaNumericValidator',DateValidator:'DateValidator', FixedLengthValidator:'FixedLengthValidator',MinimumLengthValidator:'MinimumLengthValidator',MaximumLengthValidator:'MaximumLengthValidator',CustomValidator:'CustomValidator' MandatoryFieldValidator: 'MandatoryFieldValidator',TimeValidator:'TimeValidator'}
当我运行应用程序..我收到此错误
线程“main”中的异常org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为'validatorProperties'的bean时出错:通过字段'validators'表示的不满意的依赖关系;嵌套异常是org.springframework.beans.factory.BeanExpressionException:表达式解析失败;嵌套异常是org.springframework.expression.spel.SpelParseException:EL1041E:(pos 1):解析有效表达式后,表达式中还有更多数据:'lcurly({)'
答案
您错过了在属性中指定一些逗号。试试以下内容:
validators={AlphabetValidator:'AlphabetValidator',NumberValidator:'NumberValidator',AlphaNumericValidator:'AlphaNumericValidator',DateValidator:'DateValidator',FixedLengthValidator:'FixedLengthValidator',MinimumLengthValidator:'MinimumLengthValidator',MaximumLengthValidator:'MaximumLengthValidator',CustomValidator:'CustomValidator',MandatoryFieldValidator:'MandatoryFieldValidator',TimeValidator:'TimeValidator'}
另一答案
在属性文件中查看逗号','。
属性文件:
validators={AlphabetValidator:'AlphabetValidator',NumberValidator:'NumberValidator',AlphaNumericValidator:'AlphaNumericValidator',DateValidator:'DateValidator',FixedLengthValidator:'FixedLengthValidator',MinimumLengthValidator:'MinimumLengthValidator',MaximumLengthValidator:'MaximumLengthValidator',CustomValidator:'CustomValidator',MandatoryFieldValidator:'MandatoryFieldValidator',TimeValidator:'TimeValidator'}
Java代码:
@Value("#{${validators}}")
private Map<String,String> validators;
以上是关于@Value注释用于从属性文件中读取Map的主要内容,如果未能解决你的问题,请参考以下文章
从属性文件中读取List并使用spring注释加载@Value
是否可以使用 Spring 和 @Value 注释将 YAML 属性读入 Map
如何使用@Value Spring Annotation 注入 Map?
是否可以使用 Spring Boot 注释 @Value 从 application.properties 文件中获取 Map 值 [重复]