Spring学習(三)Strutsと統合
一、SpringとStrutsフレーム統合
Springは対象の作成を担当し、Strutsはアクションで要求を処理する.このため、二つのフレームの整合効果は、SpringフレームワークにStrutsフレームを作成するアクションオブジェクトを担当させることである.
二、SpringとStrutsの枠組みを統合したハローワールド
1.jarファイルの導入
strutsフレーム:
1)web.xml
2)bean.xml
bean-dao.xml:
3.java実現
Springは対象の作成を担当し、Strutsはアクションで要求を処理する.このため、二つのフレームの整合効果は、SpringフレームワークにStrutsフレームを作成するアクションオブジェクトを担当させることである.
二、SpringとStrutsの枠組みを統合したハローワールド
1.jarファイルの導入
strutsフレーム:
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
freemarker-2.3.19.jar
javassist-3.11.0.GA.jar
ognl-3.0.5.jar
struts2-core-2.3.4.1.jar
xwork-core-2.3.4.1.jar
スプリングフレーム:commons-logging-1.1.3.jar
spring-beans-3.2.5.RELEASE.jar
spring-context-3.2.5.RELEASE.jar
spring-core-3.2.5.RELEASE.jar
spring-expression-3.2.5.RELEASE.jar
スプリング-ウェブ:spring-web-3.2.5.RELEASE.jar
struts2-spring-plugin-2.3.4.1.jar
2.プロファイル1)web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- struts -->
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<!-- src java (java class ) WEB-INF/classes -->
<param-value>/WEB-INF/classes/bean*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
strutsコアモニターとspring容器初期化及びservlet Contect Listenerを配置します.2)bean.xml
bean-dao.xml:
<bean id="userDao" class="com.cityu.dao.UserDao"></bean>
bean-service.xml:<bean id="userService" class="com.cityu.service.UserService">
<property name="userDao" ref="userDao"></property>
</bean>
bean-actions.xml<bean id="userAction" class="com.cityu.action.UserAction">
<property name="userService" ref="userService"></property>
</bean>
3)struts.xml<struts>
<package name="user" extends="struts-default">
<!-- action spring , class userAction bean ,
spring IOC -->
<action name="user" class="userAction" method="execute">
<result name = "success">/index.jsp</result>
</action>
</package>
</struts>
ここで注意したいのですが、以前はユーザーが訪問する時にstrutsによってオブジェクトを作成しました.ここではspringがあります.オブジェクトを作成するuserActionの仕事をspringに渡すことができます.3.java実現
public class UserDao {
public void save(){
System.out.println("save into DataBase!");
}
}
public class UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void service(){
userDao.save();
}
}
public class UserAction extends ActionSupport{
private UserService userService;
public void setUserService(UserService userService) {
this.userService = userService;
}
public String execute(){
userService.service();
return SUCCESS;
}
}
簡単な流れはこのようなものです.ユーザーが要求する時、アクセスaction、actionオブジェクトはspring容器で作成されます.actionがdaoにアクセスする過程で必要な依存対象はすべてspringで作成され、業務方法を実行した後、actionの戻り値からindex.jspページに位置し、ユーザーとインタラクションする.もちろん、その中でstrutsの枠组みのフィルタリングの作用はしばらく多くの体现がなくて、使うのがすべてデフォルトのスクリーンセーバーなためです.