@Value注释用于从属性文件中读取Map

时间:2018-03-03 03:26:11

标签: spring annotations

我的Java有这个

validators={AlphabetValidator:'AlphabetValidator',NumberValidator:'NumberValidator'AlphaNumericValidator:'AlphaNumericValidator',DateValidator:'DateValidator', FixedLengthValidator:'FixedLengthValidator',MinimumLengthValidator:'MinimumLengthValidator',MaximumLengthValidator:'MaximumLengthValidator',CustomValidator:'CustomValidator' MandatoryFieldValidator: 'MandatoryFieldValidator',TimeValidator:'TimeValidator'}

属性文件有此

(a++-++b)

当我运行应用程序时..我收到此错误

  

线程“main”中的异常   org.springframework.beans.factory.UnsatisfiedDependencyException:   创建名为'validatorProperties'的bean时出错:不满意   通过字段'验证者'表达的依赖;嵌套异常是   org.springframework.beans.factory.BeanExpressionException:Expression   解析失败;嵌套异常是   org.springframework.expression.spel.SpelParseException:EL1041E:(pos   1):解析有效表达式后,还有更多数据   表达式:'lcurly({)'

2 个答案:

答案 0 :(得分:0)

您错过了在属性中指定一些逗号。尝试以下:

validators={AlphabetValidator:'AlphabetValidator',NumberValidator:'NumberValidator',AlphaNumericValidator:'AlphaNumericValidator',DateValidator:'DateValidator',FixedLengthValidator:'FixedLengthValidator',MinimumLengthValidator:'MinimumLengthValidator',MaximumLengthValidator:'MaximumLengthValidator',CustomValidator:'CustomValidator',MandatoryFieldValidator:'MandatoryFieldValidator',TimeValidator:'TimeValidator'}

答案 1 :(得分:0)

请查看逗号','在属性文件中。

属性文件:

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;