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

问题描述 投票:0回答:2

我的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({)'

spring annotations
2个回答
0
投票

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

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

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;
© www.soinside.com 2019 - 2024. All rights reserved.