使用@Value注释

时间:2013-07-17 12:30:23

标签: spring

我有2个属性文件 a.properties b.properties 我已将应用程序上下文添加为:

<context:property-placeholder location="classpath:a.properties" />
<context:property-placeholder location="classpath:b.properties"/>

包含属性的第一个文件包含数据库连接详细信息(这很有效) 第二 - 包含某些特定bean使用的属性。 在那个bean中,我通过@Value注释

使用这些属性
@Value("#{qw.er}")
private String someA;    
@Value("#{as.df}")
private String someB;

但是我在启动时遇到异常:

 org.springframework.expression.spel.SpelEvaluationException: 
EL1008E:(pos 0): Field or property 'qw' cannot be found on object of type 
'org.springframework.beans.factory.config.BeanExpressionContext'

我做错了什么?

是否可以在一个文件中使用2 context:property-placeholder

PS:属性qw.er和as.df仅存在于文件b.properties

1 个答案:

答案 0 :(得分:9)

解释here

定义属性后,您应该使用

@Value("${qw.er}")
private String someA;

注意$ sign。