1

ActiveMQConnectionFactory 使用brokerURL属性来存储服务器地址。TibjmsConnectionFactory 使用serverUrl属性来存储服务器地址。

是否可以在 Spring 配置中以可以从属性文件切换的方式定义 bean?例如:

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

其中 XXX 充当 brokerURL 或 serverUrl - 取决于连接工厂。

我知道可以使用配置文件来实现这一点,但它看起来是一个非常简单的问题,可以很容易地解决。

4

1 回答 1

0

不幸的是,属性名称不能基于 PropertyPlaceHolderConfigurer,因此您不能基于属性值来获取它。这些是我能想到的几种方式:

  1. 如果可行,请使用 java @Configuration(Spring 3.2+),然后您可以根据自定义属性值创建一个或另一个连接工厂
  2. 就像您提到但打折的那样,配置文件非常适合这种情况。
  3. 有点矫枉过正的方法,创建一个FactoryBean,它基于您传递给自定义工厂 bean 的某个标志创建一个或另一个连接工厂。
于 2013-02-12T01:30:53.617 回答