2011-08-02 10 views
20

スプリングコンフィグレーションファイル内に条件文を入れる方法Springコンフィグレーション内の条件文

値がプロパティ(a)の値に依存するString bean(b)があります。 aは実行される環境に基づいて動的に設定されます。

if (a) 
b="yes" 
else 
b="no" 

これを春設定でどのようにコードするのですか?

+0

jeejava.com/conditional-statement-in-spring-config/として渡さ – user3470953

答えて

25

Ryanが言ったようにSpELが助けます。あなたは春のXMLでこのような何かを行うことができるはず:

<bean id="flag" class="java.lang.Boolean"> 
    <constructor-arg value="#{ systemProperties['system.propery.flag'] ?: false }" /> 
</bean> 

<bean id="bean" class="com.my.MyBean"> 
    <property name="property" value="#{ flag ? 'yes' : 'no' }"/> 
</bean> 
2

Spring 3+のSpring Expression Languageを参照してください。そうでなければ、あなたはおそらくFactoryBeanかそれに類するものを書き留めているでしょう。

1

は名前がプロパティファイルであると私は、この行の上にそれを読んでいます、場所、ロールを考えると...それが動作する...これを試してみてください。以下

<bean id="Student" class="beans.Student"> <property name="name" value="#{ ${Roll}== 1 ? '${Location}' : '${name}' }"/> </bean>

0

私のために働いています。 システムプロパティのJava -Dflag =真-jar project.jar

<bean id="flag" class="java.lang.Boolean"> 
    <constructor-arg value="#{ systemProperties['flag'] ?: false }" /> 
    </bean> 

    <bean id="bean" class="com.my.MyBean"> 
    <property name="property" value="#{ flag ? 'yes' : 'no' }"/> 
</bean>