1)Spring:负责对象创建及处理对象依赖关系
2)Struts:用Action处理请求
3)Spring与Struts整合的关键点:将Struts框架Action的创建交给Spring完成
4)SSH整合关键点:
Spring与Struts:Action对象交给Spring创建
Spring与Hibernate:SessionFactory对象交给Spring创建
1)引入struts相关jar文件,如下图:
2)spring-core相关jar文件,如下图:
3)引入spring-web支持的jar包,如下图:
4)在web.xml中配置struts核心过滤器
<!-- 1,struts配置:引入struts核心过滤器 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>5)在web.xml中对spring进行配置 <!-- 2,spring配置,,初始化spring的IOC容器 --> <!-- 多个文件用空格隔开 --> <!-- <param-value>/WEB-INF/daoContext.xml /WEB-INF/applicationContext.xml</param-value> --> <!-- 这样写<param-value>/WEB-INF/classes/bean-*.xml</param-value>,表示加载src下所有的bean-开头的xml --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/bean-*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>1)UserDao.java
package com.bighuan.dao; public class UserDao { public void save(){ System.out.println("DB:保存用户"); } } 2)UserService.java package com.bighuan.service; import com.bighuan.dao.UserDao; public class UserService { private UserDao userDao;//=new UserDao(); //IOC:对象的创建交给spring的外部容器创建 public void setUserDao(UserDao userDao) { this.userDao = userDao; } public void save(){ userDao.save(); } } 3)UserAction.java package com.bighuan.action; import com.bighuan.service.UserService; import com.opensymphony.xwork2.ActionSupport; import com.sun.net.httpserver.Authenticator.Success; public class UserAction extends ActionSupport{ // service:springIOC容器注入 private UserService userService; public void setUserService(UserService userService) { this.userService = userService; } public String execute() { userService.save(); return SUCCESS; } }以下四个配置文件都在src目录下.
1)bean-dao.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- IOC容器的配置:要创建的所有对象都在这里配置 --> <bean id="userDao" class="com.bighuan.dao.UserDao"></bean> </beans>2)bean-service.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- IOC容器的配置:要创建的所有对象都在这里配置 --> <bean id="userService" class="com.bighuan.service.UserService"> <property name="userDao" ref="userDao"></property> </bean> </beans>3)bean-action.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- IOC容器的配置:要创建的所有对象都在这里配置 --> <bean id="userAction" class="com.bighuan.action.UserAction"> <property name="userService" ref="userService"></property> </bean> </beans>4)struts.xml配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="false" /> <package name="user" extends="struts-default"> <!-- 这种方式还是struts创建action --> <!-- <action name="user" class="com.bighuan.action.UserAction" method="execute"> <result name="success">/index.jsp</result> </action> --> <!-- spring方式创建Action --> <action name="user" class="userAction" method="execute"> <result name="success">/index.jsp</result> </action> </package> <!-- Add packages here --> </struts> 抛弃传统配置Action的方式,如上面代码注释的Action,而是通过Spring方式创建Action.访问Action:http://localhost:8080/spring_struts/user,最终成功跳转到index.jsp页面,spring与struts整合成功!