2012-11-08 40 views
6

我在我的XML定義的屬性文件:有沒有辦法在Spring中的mvc3中有xml中的if/else條件?

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location" value="/WEB-INF/db.properties"></property>  
</bean> 

我有文件屬性:

someprop = one 

問題

在我的XML我想以添加/刪除一個bean定義中的一個屬性。例如:

<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"> 
    <property name="driverClassName" value="${jdbc.driverClassName}" /> 
    <property name="url" value="${jdbc.internal.url}" /> 
    <!--I want to add/remove the line below based on value in property file--> 
    <property name="username" value="${jdbc.internal.username}" /> 
</bean> 
+1

可能我建議爲不同的環境使用不同的屬性文件。這是解決這個問題的「標準」方式。 – pap

+0

也可以工作。雖然,我很困惑如何確定哪一個被拿起?我必須在tomcat中配置環境名稱嗎?有沒有深入的鏈接? – birdy

+0

無論如何,因爲這是XML而不是屬性文件。從一個env部署到另一個時,我仍然需要更改xml文件。 – birdy

回答

4

這可能使用SpringEL。閱讀用於定義bean定義的表達式支持部分here

如果這是爲了處理多個環境,那麼Spring 3.1提供了bean definition profilesEnvironment抽象。

+0

我還沒有在您建議的鏈接中找到這個答案。個人資料如何觸發?假設我有兩個配置文件,我可以在哪裏使其中一個活動 – birdy

+0

@birdy可以通過多種方式設置活動配置文件。看到這篇文章的更多信息http://stackoverflow.com/questions/8587489/how-to-set-active-spring-3-1-environment-profile-via-a-properites-file-and-not-v –

相關問題