2012-03-29 32 views
1

我知道我問的問題必須在某處回答,但我無法在網上找到一些示例。使用maven配置文件切換spring應用上下文或Impl java類

我希望在構建和運行時爲公共代碼庫換出Spring 3.0 bean定義。我還使用Maven配置文件構建相同代碼的不同版本。

目前我的豆DEF是

<bean id="somebean" class="com.x.SomeImpl" > 

我將需要更換,並在某些時候作爲

<bean id="somebean" class="com.x.SomeOtherImpl" > 

現在部署我想的方法是

1)使用Maven型材完整的applicationContext.xml轉出基於Maven的輪廓其他一些applicationContextB.xml。

2)使用Maven型材以某種方式?只更換豆ID定義 「somebean」

我的問題是:

a)如何可以選擇2可以實現嗎?

b)這些方法在編譯期間仍然編譯和封裝SomeImpl和SomeOtherImpl。我怎樣才能挑選一個而不是另一個進行EAR的拼版和包裝?

我知道Spring 3.1有bean的env配置文件,但目前這不是一個選項。

回答

2

你可以考慮使用maven資源和filtering功能可用。您可以在您的上下文文件中包含佔位符,併爲每個配置文件保存值的屬性文件。在每個配置文件,您可以使用不同的屬性文件,並有適當的上下文文件過濾。

+0

右鍵 - 所以這部分解釋(一)。任何想法如何我可以挑選的java文件包含/排除在EAR – shinynewbike 2012-03-29 09:43:39

+0

要小心,你不結了不可預知的建立,尤其是在多模塊項目,如果你能在當地具有相同的二進制假象根據您使用的配置文件,使用不同的烘焙配置文件進行回購。避免這種最簡單的方法是在每個配置文件不同的標籤製造品。 – artbristol 2012-03-29 10:35:01

0

看看Maven Build Helper Plugin添加源。

您可以將配置文件和Build Helper Plugin(添加源目標)組合在兩種情況下添加所需的類。

0

可以導入多個配置文件到你的配置是這樣的:

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">  
    <import resource="applicationContextA.xml"/> 
    <import resource="applicationContextB"/> 
</beans> 

對於開關你可以使用Spring配置文件。

相關問題