Spring統合Struts 2


Spring統合Strutsの目的
    SpringはIOCの枠組み(あるいはioc容器)です.Iocの考え方は,コンポーネント間のデカップリングを実現することである.WebプログラムでmvcフレームワークとしてStruts 2を使用すると、actionとビジネス層のデカップリングはどのように実現されますか?これがspring統合Struts 2の目的です.
手順:
1.必要なクラスライブラリのインポート
Springを使用してStruts 2フレームワークを統合するには、SpringとStruts 2フレームワークに必要なクラスライブラリをインポートするほか、統合をサポートする特定のクラスライブラリをインポートする必要があります.
(1)Springフレームワークの必要および特定クラスライブラリのインポート.
Spring 3.0 web libaralies
(2)Struts 2フレームワークの必要および特定のクラスライブラリをインポートする.
Struts2 spring libraries
2.web.xmlファイルを構成します.
(1)StrutsPrepareAndExecuteFilterを構成する.(myeclipseでStruts 2プロパティを追加した場合に自動生成できます)
(2)Springプロファイルのロード機能を完了するためにlistenerを構成する.
<listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

(3)context-paramで特定のプロファイルを指定する.
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>

3.Struts 2フレームワークのActionクラスの変更
Springを用いてStruts 2フレームワークを統合する目的は,Struts 2のActionインスタンスをSpringフレームワークのIOCコンテナに渡して管理することである.Actionと特定のビジネスをクラスデカップリングします.
actionでプライベート属性を宣言し、setterメソッドとgetterメソッドを指定します.
private UserBiz userBiz;
setter getterメソッド省略
4.struts.xmlファイルを変更するには:
SpringフレームワークStruts 2フレームワークを統合すると、Struts 2のActionがIOCコンテナに実例化され、組み立てられます.Struts 2フレームワークを「知る」ためにはstruts.propertiesファイルにStruts 2の定数を設定する必要があります.

Springを使用してStruts 2を統合すると、struts.xmlファイルの要素のタイプは、アクションに対応する実際のタイプではなく、合法的なタグであればapplicationContext.xmlのアクションのbeanのidに対応します.
struts.xmlファイルのclassは、完全なクラス名ではなく、パッケージ名を削除したクラス名のみを使用することを推奨します.これは規範ではなく、多くの開発者の習慣であり、可読性を高めています.
5.アプリケーションContext.xmlファイルの変更:
Springがstruts 2を統合すると、struts 2のActionインスタンスはSpringフレームワークのIOCコンテナを使用してインスタンス化およびアセンブリされる必要があります.
注:strut 2のActionクラスはscope="prototype"を作成する必要があります.Actionクラスはインスタンスによって要求パラメータの他の属性をカプセル化しているため、scope="prototype"を指定しないと、デフォルトでは単一の例の範囲となり、複数の要求が1つのActionインスタンスのみをインスタンス化する場合があり、混乱を引き起こします.