11

@Valueプロパティ ソースが のサブクラスである場合、を使用して Spring Bean に文字列の値を設定しようとしていますPropertyPlaceholderConfigurer。誰でもこれを行う方法を知っていますか?

4

3 に答える 3

15

古い質問ですが、まだ答える価値があります。元の と同じように式を使用できますPropertyPlaceholderConfigurer

app.properties

    app.value=Injected

app-context.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

PropertyPlaceHolderConfigurerアノテーションでSPELを使用してロードされたプロパティにアクセスすることはできないと思います@Value。それは素晴らしいことですが、私が知る限り、次善の策は次のように宣言することです。

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

と同じプロパティファイルを指すことができますPropertyPlaceHolderConfigurer

于 2011-03-18T23:34:07.157 に答える
0

プロパティ構文を使用して Bean 定義ファイルから値を明示的に注入することで、なんとか機能させることができましたか? 理論的には、それが機能する場合、同じ式を で使用できるはずです@Value@Autowired @Qualifierさらに言えば、次の方法でも実行できるはずです

于 2009-11-16T16:40:47.907 に答える