2013-02-08 71 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的某个标志创建一个或另一个连接工厂。
相关问题