我有一個運行彈簧應用程序的服務器集羣。一些彈簧組件需要根據其服務器正在播放的角色(主要,次要等)進行不同的配置。我不想爲每個角色維護單獨的spring配置文件,而是希望在應用程序啓動時動態檢測此配置文件。它幾乎就像我想要條件bean實例化(這在春天不存在)。主機/角色相關彈簧配置
問:實現這種配置的最佳方式是什麼?
示例:只有羣集中的主節點應創建對JMS代理的持久訂閱(這需要全局唯一的JMS客戶端ID)。我可以通過在數據庫中查找正在運行的服務器的主機名並手動啓動此容器(如果我的節點碰巧是主要的)來檢測當前主機是否具有此角色。但是,我不希望羣集中的每個節點都創建一個持久訂閱(通過實例化這個bean)。
<bean id="auditrecordListenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="concurrentConsumers" value="1" />
<property name="clientID" value="${server-hostname}" />
<property name="durable" value="true" />
<!-- only started on the primary node: via application listener -->
<property name="autoStartup" value="false" />
</bean>
注意,但是沒有$ {服務器的主機名}財產Spring容器(至少我所知道的)
僅供參考 - 在$ {服務器主機名}屬性應該有值=「...」屬性。 – flicken 2010-01-20 20:39:47