2012-01-19 2 views
11

私はSpringには新しく、1つのWebモジュールを含む複数のモジュールを持つ単一のプロジェクトを得ました。 WebモジュールはSpring MVCを使用していますが、プロジェクト全体を処理するプロジェクトレベルでSpringの主要な設定を行うことができるのかどうかは疑問でした。マルチモジュールプロジェクトでのスプリング構成

main 
    -module1 
    -module2 
    -web 
     +spring3.1, spring-security 

このケースにはどのような設定が最適でしょうか?

答えて

6

ビルドレイアウトとランタイムCLASSPATHは、2つの異なるものです。 applicationContext.xmlファイルまたは@Configurationクラスを異なるモジュールで定義しても、が単一のCLASSPATHにマージされる可能性があります。 とmodule2は、独自のコンテキストを宣言することがありますが、実行時にCLASSPATHがマージされるため、単一のメインコンテキストのみが作成されます。また、1つのモジュールでCLASSPATHスキャンを使用する場合は、他のモジュールで@Serviceと注釈を付けられたクラス(Bean)を受け取ることがあります。

webモジュールでは、Springコアライブラリに依存する必要がありますが、spring-web、MVCおよびspring-securityにも依存します。このモジュールは、子コンテキストwebを作成しますが、これはメインコンテキストにアクセスできますが、逆もありません。

はもちろん、あなたのユーバー-JAR( ear?)

8

私たちは、私が働く建築のこの種を持っているに各ライブラリのコピーを1つだけ持っている必要があります。 WebモジュールでContextLoaderListener(Spring Event Listener)を使用することにしました。

はその後、serverApplicationContext.xmlでは、我々はすべてのモジュールのコンテキストファイルをインポート:

<import resource="classpath*:module1ApplicationContext.xml" /> 
<import resource="classpath*:module2ApplicationContext.xml" /> 
... 

このようにWebアプリケーションのコンテキストの初期化中に春のコンテキストロードを活用しています。

関連する問題