2012-01-13 27 views
3

我想實現使用Spring下面的功能,但是沒有成功到現在。將Spring bean的動態指的是基於系統屬性兩個類在Spring 3.0

創建XML文件中的春天豆「testBean就」並動態地將其指向「A」級或「B」取決於是否有些系統屬性「C」已被設置與否。我想在XML配置文件級本身處理這個問題。應用程序的其餘部分應該能夠無縫地使用bean「testBean」。

請讓我知道如何可以在此使用Spring來完成?讓我知道是否需要其他細節。

在此先感謝。

回答

3
+0

感謝您的溶液。我意識到要麼使用bean配置文件(http://blog.springsource.com/2011/02/14/spring-3-1-m1-introducing-profile/)要麼使用統一的屬性管理(http://blog.springsource .org/2011/02/15/spring-3-1-m1-unified-property-management /)Spring 3.1的功能我可以做到這一點。問題是我們仍在使用Spring 3.0。你能否給我推薦一些與Spring 3.0相同的解決方案? – invinc4u 2012-01-17 19:13:34

3

您可以使用表達式語言來配置testBean就這樣(未測試):

<bean id="testBean" class="com.test.TestBean"> 
    <property name="pointer" value="#{ systemProperties['C'] != null ? 'com.test.A' : 'com.test.B' }"/> 
</bean> 

請參閱documentation以作進一步參考。

相關部分:基於

  • 6.4.1 XML配置
  • 6.5.13三元運算符(如果 - 則 - 否則)
+0

我不需要使用PropertyPlaceHolders來設置bean的某些屬性。我需要根據某些屬性動態地切換bean指向的類。我懷疑這種方法是否適用於我的問題。儘管感謝您的建議。 – invinc4u 2012-01-17 19:16:41