Spring与Struts2为什么要整合呢?
把Action实例交给Spring来管理!!
1.单独测试Struts是否添加成功(jar包和配置文件),先单独测试,不要整合之后再测试,容易出问题
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <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> </web-app>
Action
public class TestAction extends ActionSupport { @Override public String execute() throws Exception { return "success"; } }
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.devMode" value="true"/> <!-- 配置action,在没有与Spring整合时,class属性写的是类的全限定名。 当与Spring整合后,class属性写的是bean的名称。 注意:这个bean一定要是多例的模式(prototype)。 --> <package name="default" namespace="/" extends="struts-default"> <action name="test" class="com.tuniu.action.TestAction"> <result name="success">/test.jsp</result> </action> </package> </struts>
2.单独测试spring是否添加成功(jar包和配置文件)
applicationContext.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: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"> <!-- 自动扫描与装配bean --> <context:component-scan base-package="com.tuniu"/> </beans>
@Service public class UserService { public void saveUser(Object user) { System.out.println("保存一个User对象"); } }
public class UserServiceTest { @Test public void testSaveUser() { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); UserService userService = (UserService) ac.getBean("userService"); System.out.println(userService); } }
IOC容器成功管理了实例对象,表示Spring环境添加成功。
3.整合
整个应用程序只需要一个容器对象就可以了
11.在web.xml中配置一个监听器,最大作用范围的监听器,当应用程序启动的时候,它就会初始化这个容器。
<!-- 配置Spring的用于初始化ApplicationContext的监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!--学习spring的时候我们就知道生成容器需要读取配置文件--> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext*.xml</param-value> </context-param>
22.
时间: 2024-10-27 12:41:08