2012-03-29 6 views
1

私はどこかで答えなければならないという質問を知っていますが、いくつかのガイドラインでネット上の例を見つけることはできません。Mavenプロファイルを使用したSpringアプリケーションコンテキストまたはImpl Javaクラスの切り替え

一般的なコードベースのビルドとランタイム時に、Spring 3.0 bean定義をスワップアウトしたいと思います。また、Mavenプロファイルを使用して同じコードの異なるバージョンをビルドしています。

現在、私の豆DEFが、私は今、私が考えているアプローチは

1です

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

として、いくつかの回でそれを交換して展開する必要があります

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

です) Mavenプロファイルを使用して、完全なapplicationContext.xmlをMavenプロファイルに基づいて他のいくつかのapplicationContextB.xmlに切り替えることができます。

2)Mavenプロファイルを何とか使用しますか? "somebean" のための専用BeanのID定義を置き換える

私の質問は以下のとおりです。

a)はどのようにオプション2を達成することができますか?

b)これらの方法では、ビルド中にSomeImplとSomeOtherImplの両方をコンパイルしてパッケージ化します。私はどれだけ唯一のものを選んで、他のものを選ぶことはできないのですか?

私はSpring 3.1がBean用のenvプロファイルを持っていることを知っていますが、現在はオプションではありません。

答えて

2

mavenリソースとfiltering機能を使用することを検討できます。コンテキストファイルにはプレースホルダを、プロファイルを保持するプロパティファイルには値を格納することができます。それぞれのプロファイルでは、別のプロパティファイルを使用し、コンテキストファイルを適切にフィルタリングすることができます。

+0

右 - これはパート(a)を説明しています。どんなアイデアを選択して、EARに含める/除外するjavaファイルを選ぶことができますか – shinynewbike

+0

ローカルで同じバイナリアーチファクトを持つことができる場合は、特にマルチモジュールプロジェクトでは予測できないビルドにならないように注意してくださいどのプロファイルをビルドするかに応じて、さまざまな焼き付け設定ファイルを使ってレポしてください。これを避ける最も簡単な方法は、アーチファクトに各プロファイルで異なるタグを付けることです。 – artbristol

0

Maven Build Helper Plugin add-sourceをご覧ください。

プロファイルとBuild Helper Plugin(Add-Source Goal)を組み合わせて、どちらの場合でも必要なクラスを追加できます。

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> 

関連する問題