私はSpringフレームワークに少し精通していますが、プロジェクトアーキテクチャの観点からSpringの使用に関してまだ多くの質問があります. 現在、Spring 3 と Maven Web アプリケーションをセットアップしており、ファンシーなコンポーネント スキャン機能と自動配線機能をすべて試してみたいと思っていますが、ここで混乱します。
プロジェクトをサブモジュールに分割しようとしています。そして、ある時点で、これらのサブモジュールが に含まsomething-context.xml
れる場合がありclasspath*:resource/META-INF
ます。たとえば、別のモジュールで datSource 関連のものを定義したい場合などです。それでは、すべての jar のクラスパス内からコンテキスト ファイルをロードしましょう。
しかし、ここで曖昧になります。たとえば、コンポーネント スキャンを使用しているとします。私は明らかにSpringを使用DispatcherServlet
しており、サーブレットコンテキストをロードする必要があり、 web.xml で指定されたグローバルアプリケーションコンテキストパラメーターがありますcontextConfigLocation
。
そのため、サーブレット コンテキスト構成にはコンポーネント スキャン機能が有効にcom.mycom.project.controllers
なり、グローバルcontextConfigLocation
にロードされたコンテキストには、パッケージのコンポーネント スキャン機能がロードされたコンテキストがあり、com.mycom.project
も検索されclasspath*:META-INF/spring/*-context.xml
ます。
だから私の質問は - コンポーネントスキャンが forcom.mycom.project.controllers
とに使用されていることを考えると、このロードコントローラーは2回com.mycom.project
ですか? それとも、すべてが 1 つの巨大なコンテナーにロードされ、いずれかまたはグローバル宣言のcontextConfigLocation
パラメーターがアクセスの問題のようなものですか? DispatcherServlet
でDispatcherServlet
定義されているものだけに到達servlet-context.xml
しますが、それ以外は使用できませんか?
また、私の仮定が間違っている場合、マルチモジュール プロジェクトの問題を管理する方法について提案してもらえますか?
ありがとう。