Aプロジェクト実戦(二)SpringとStrutsの統合
このプロジェクトはSpringとStrutsを使用しています.まず、この2つの部分がどのように統合されているかを見てみましょう.
ApplicationContextはSpringのコンテナで、すべてのコンポーネントを管理しています.
①ビジネスロジック層コンポーネントの管理
②永続層コンポーネントの管理
Web起動時にSpringのApplicationContextインスタンスを作成する.
方式1:web.xmlマウントコンテキスト、Spring独自のMVCフレームワークはこの方式を採用して1、WEBプロジェクトを起動する時、WEBコンテナはそのプロファイルwebを読み取る.xml,との2つのノードを読み込む
2、次に、このWebプロジェクトのすべての部分がこのコンテキストを共有するサーブレットContext(servletコンテキスト)を作成します.
3、コンテナはをキー値ペアに変換し、servletContextに渡す
4、コンテナのクラスインスタンスを作成し、リスナーを作成する
Webについてxmlの詳細参照:[web.xmlの詳細]
WebでxmlプロファイルでのApplicationContextの自動作成には、次の2つのポリシーがあります.
サーブレットContextListenerによる実装(サーブレット2.3以降使用可能)
load-on-startupサーブレットによる実装
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
通常、プロジェクトに複数のプロファイルがロードされる必要がある場合は、コンポーネントを使用してプロファイルのファイル名を決定することを考慮します.
ContextLoaderListenerがロードされると、contextConfigLocationというパラメータが検索されます.したがって、context-paramを構成するときのパラメータ名はcontextConfigLocationである必要があります.
ContextLoaderListenerはSpringがサーブレットContextListenerを提供する実装クラスである.
コンフィギュレーションファイルが指定されていない場合、SpringはアプリケーションContextを自動的に検索します.xmlプロファイル
web.xmlファイル
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Springは、listenerとして使用できるサーブレットContextListenerの実装クラスContextLoaderListenerを提供します.
作成時にWEB-INF/下のアプリケーションContextを自動的に検索します.xrnlファイル.したがって、プロファイルが1つしかなく、ファイル名がapplicationContex t.xrnlである場合、
Web上でのみxrnlファイルに次のコードを追加します.
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
方式2:struts-configを通過する.xmlマウントSpringコンテキスト
Springが提供するContextLoaderPlugInでstrutsのActionServiceletにSpringアプリケーションのコンテキストをロードできます
struts-config.xmlファイル
プロジェクト内の実際の統合方法:
上のいくつかの方式、すべてプロジェクトの中の集積の方式ではありませんて、ゆっくりと書きます
ApplicationContextはSpringのコンテナで、すべてのコンポーネントを管理しています.
①ビジネスロジック層コンポーネントの管理
②永続層コンポーネントの管理
Web起動時にSpringのApplicationContextインスタンスを作成する.
方式1:web.xmlマウントコンテキスト、Spring独自のMVCフレームワークはこの方式を採用して1、WEBプロジェクトを起動する時、WEBコンテナはそのプロファイルwebを読み取る.xml,
2、次に、このWebプロジェクトのすべての部分がこのコンテキストを共有するサーブレットContext(servletコンテキスト)を作成します.
3、コンテナは
4、コンテナ
Webについてxmlの詳細参照:[web.xmlの詳細]
WebでxmlプロファイルでのApplicationContextの自動作成には、次の2つのポリシーがあります.
サーブレットContextListenerによる実装(サーブレット2.3以降使用可能)
load-on-startupサーブレットによる実装
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
通常、プロジェクトに複数のプロファイルがロードされる必要がある場合は、コンポーネントを使用してプロファイルのファイル名を決定することを考慮します.
ContextLoaderListenerがロードされると、contextConfigLocationというパラメータが検索されます.したがって、context-paramを構成するときのパラメータ名はcontextConfigLocationである必要があります.
ContextLoaderListenerはSpringがサーブレットContextListenerを提供する実装クラスである.
コンフィギュレーションファイルが指定されていない場合、SpringはアプリケーションContextを自動的に検索します.xmlプロファイル
web.xmlファイル
<context-param>
<param-name>ContextLoaderListener</param-name>
<param-value>
/WEB-INF/dataAccessContext.xml
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Springは、listenerとして使用できるサーブレットContextListenerの実装クラスContextLoaderListenerを提供します.
作成時にWEB-INF/下のアプリケーションContextを自動的に検索します.xrnlファイル.したがって、プロファイルが1つしかなく、ファイル名がapplicationContex t.xrnlである場合、
Web上でのみxrnlファイルに次のコードを追加します.
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
方式2:struts-configを通過する.xmlマウントSpringコンテキスト
Springが提供するContextLoaderPlugInでstrutsのActionServiceletにSpringアプリケーションのコンテキストをロードできます
struts-config.xmlファイル
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
</plug-in>
プロジェクト内の実際の統合方法:
上のいくつかの方式、すべてプロジェクトの中の集積の方式ではありませんて、ゆっくりと書きます