11

当我@Value的属性源是PropertyPlaceholderConfigurer. 有人知道怎么做吗 ?

4

3 回答 3

15

老问题,但仍然值得回答。您可以像使用原始PropertyPlaceholderConfigurer.

应用程序属性

    app.value=Injected

应用程序上下文.xml

    <bean id="propertyConfigurer" class="MyPropertyPlaceholderConfigurer">
      <property name="location">
        <value>file:app.properties</value>
      </property>
    </bean>

在目标 bean 中

    @Value(value="${app.value}")
    private String injected;

使用 Spring 3.0.6 测试了这种方法

于 2011-10-27T10:05:29.553 回答
0

您是否设法通过使用属性语法从 bean 定义文件中显式注入值来使其工作?理论上,如果这样可行,那么您应该能够在 中使用相同的表达式@Value。就此而言,您应该也可以@Autowired @Qualifier使用

于 2009-11-16T16:40:47.907 回答
0

我认为不可能访问通过在注释PropertyPlaceHolderConfigurer中使用 SPEL加载的属性。@Value这会很棒,但据我所知,下一个最好的事情是声明:

<util:properties id="props" location="classpath:xxx/yyy/app.props"/>

它可以指向与您的PropertyPlaceHolderConfigurer.

于 2011-03-18T23:34:07.157 回答