Java 具有不同属性名称的类似spring组件

Java 具有不同属性名称的类似spring组件,java,spring,Java,Spring,ActiveMQConnectionFactory使用brokerURL属性存储服务器地址。 TibjmsConnectionFactory使用服务器URL属性存储服务器地址 是否可以在Spring配置中定义bean,使它们可以从属性文件中切换? 例如: <bean id="connectionFactory" class="${listener.connection.factory}"> <property name="XXX" value="${in.serverU

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

是否可以在Spring配置中定义bean,使它们可以从属性文件中切换? 例如:

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

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


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

不幸的是,属性名称不能基于PropertyPlaceHolderConfigure,因此不能基于属性值。以下是我能想到的几种方法:

  • 使用java
    @Configuration
    如果可行(Spring 3.2+),则可以基于自定义属性值创建一个或另一个connectionfactory
  • 正如您所注意到的,配置文件非常适合这种情况
  • 有点过分的做法,创建一个,它根据传递给自定义工厂bean的某个标志创建一个或另一个连接工厂