1

applicationcontext.xml で、後で SPEL 式で使用できる値を設定できますか?

たとえば、これを行う方法はありますか?:

<setProperty name="foo" value="someval" />


<bean id="beanId" name="beanName" class="SomeClass">
    <property name="someVal" value="blah_${foo}"/>
</bean>

これを行う実際の理由は、ステートメントを使用して、さまざまなアプリケーション コンテキストで使用されるエンティティ マネージャーを作成するためです。問題は、エンティティ マネージャーが、Bitronix がローカル ファイルを作成するために使用する一意の名前を必要とすることです。このファイルは、そのフィールドに同じ名前を使用して複数の単体テストを同時に実行すると壊れます。その一意の名前を設定するために、現在、アプリケーション コンテキストごとに個別のプロパティ ファイルがあり、それをインポートして一意の名前を取得しています。

そのナンセンスをするよりも、私はむしろこれをしたい:

<setProperty name="uniqueName" value="someUniqueName" />
<import resource="classpath*:shared/db/fooDb.xml" />
4

1 に答える 1

5

Spring-el と util 名前空間を使用してこれを行うことができます。

<util:properties id="myprops">
    <prop key="foo">someval</prop>
</util:properties>

<bean id="beanId" name="beanName" class="SomeClass">
    <property name="someVal" value="blah_#{myprops.foo}"/>
</bean>
于 2012-10-17T23:10:41.360 に答える