我正在寻找一种在ActiveMQ配置上替换它的方法:
<transportConnector uri="tcp://localhost:60019"> disableAsyncDispatch="false"/>
带有“not-hardcoded
”URI(例如,将“localhost
”替换为解析为实例相关值的变量)。问题是,因为每个服务器有许多JBoss
个实例,并且上面的URI解析为0.0.0.0:60019
,所以一次只能运行一个实例,除非我们在每个应用程序的基础上配置它,这不仅令人沮丧,而且在某些情况下还不够(应该基于每个实例,这更令人沮丧)。
每个JBoss
服务器都有自己的IP地址,因此我考虑使用${jboss.bind.address}
来规避这一点,但它不会使用语法。我们还有一个环境变量%SERVERIP%
,可用于从启动脚本调用它,但我不知道ActiveMQ
是否读取了一个环境变量来分配其传输连接器URI。
非常感谢任何帮助。
答案 0 :(得分:2)
使用PropertyPlaceHolderConfigurer,你应该能够从文件或jvm系统变量中用一些$ {variable}替换uri。这应该有效,因为ActiveMQ配置实际上只是一个Spring上下文。