Struts + Spring統合の例
Apache Struts 1.xで開発されたWebアプリケーションで、Spring Iocコンテナで宣言されたBeanにアクセスする方法を示すチュートリアルを次に示します。
このStruts1.x + Springの例をダウンロード–Struts-Spring-Hibernate-Example.zip
Springには、Spring Iocコンテナで宣言されたアクセスBean用の「Struts固有」ソリューションが付属しています。
-
Struts構成ファイルにSpringの既製Strutsプラグインを登録します。
-
Strutsアクションクラスを変更して、Struts ActionクラスのサブクラスであるSpringのActionSupportクラスを拡張します。
-
ActionSupportは、Spring Iocコンテナで宣言されたBeanにアクセスするための便利なgetWebApplicationContext()メソッドを提供します。
1. Struts + Springの依存関係
Struts 1.xと統合するには、Springに「spring-web.jar」および「spring-struts.jar」ライブラリが必要です。 SpringのWebサイトまたはMavenからダウンロードできます。
pom.xml
org.springframework spring 2.5.6 org.springframework spring-web 2.5.6 org.springframework spring-struts 2.0.8
2. Strutsプラグインを登録する
Struts構成ファイル(struts-config.xml)で、Springの既製のStrutsプラグイン「ContextLoaderPlugIn」を登録します。
struts-config.xml
「ContextLoaderPlugIn」は、StrutsとSpringの間のすべての統合作業を処理します。 SpringのBeanxmlファイルを「contextConfigLocation」プロパティにロードできます。
SpringBeans.xml
3. Spring's ActionSupport
Struts Actionクラスで、Springの「ActionSupport」クラスを拡張し、「getWebApplicationContext()」メソッドを介してSpringのBeanを取得します。
CustomerBean.xml
Strutsアクション
package com.example.customer.action; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.springframework.web.struts.ActionSupport; import com.example.customer.bo.CustomerBo; import com.example.customer.model.Customer; public class ListCustomerAction extends ActionSupport{ public ActionForward execute(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) throws Exception { CustomerBo customerBo = (CustomerBo) getWebApplicationContext().getBean("customerBo"); ... return mapping.findForward("success"); } }
完了しました。