2013-02-08 60 views
1

ActiveMQConnectionFactory使用brokerURL用於存儲服務器地址的屬性。 TibjmsConnectionFactory使用serverUrl屬性來存儲服務器地址。具有不同屬性名稱的類似彈簧組件

是否可以在Spring配置中以可以從屬性文件切換的方式定義bean? 例如:

<bean id="connectionFactory" class="${listener.connection.factory}"> 
    <property name="XXX" value="${in.serverUrl}" /> 
</bean> 

凡XXX充當brokerURL或的serverUrl - 這取決於連接工廠。

我知道配置文件可以用來實現這一點,但它看起來像一個非常簡單的問題,可以很容易地解決。

回答

0

不幸的是屬性名稱不能基於PropertyPlaceHolderConfigurer,所以你不能基於屬性值。這些是我能想到的幾種方法:

  1. 使用Java @Configuration如果可行的話(春季3.2+),你就可以創建一個或基於自定義屬性的其他ConnectionFactory的值
  2. 就像你注意到,但打折,配置文件非常適合這種場景。
  3. 有點矯枉過正的方法,創建一個FactoryBean,根據您傳遞給您的自定義工廠bean的某個標誌創建一個或另一個連接工廠。
相關問題