gpt4 book ai didi

java - 具有不同属性名称的相似 Spring 组件

转载 作者:行者123 更新时间:2023-12-01 04:52:14 25 4
gpt4 key购买 nike

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

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

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

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

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

最佳答案

遗憾的是,属性名称不能基于 PropertyPlaceHolderConfigurer,因此您不能将其基于属性值。我能想到的有以下几种方法:

  1. 如果可行,请使用 java @Configuration(Spring 3.2+),然后您可以根据自定义属性值创建一个或另一个连接工厂
  2. 正如您所指出的,但有折扣,个人资料非常适合这种场景。
  3. 有点过分的方法,创建一个 FactoryBean ,它根据您传递给自定义工厂 bean 的某个标志创建一个或另一个连接工厂。

关于java - 具有不同属性名称的相似 Spring 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14776486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com