1、首先导入spring所需要的包
2、web.xml中添加spring的监听器以及spring配置文件所在位置
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-servlet.xml</param-value> </context-param>
3、编写业务逻辑组件,建立FirstService接口和实现类FirstServiceImpl类
public interface FirstService { boolean valid(String username); }
public class FirstServiceImpl implements FirstService { public boolean valid(String username) { if (username.equals("kevin")) { System.out.println("spring"); return true; } else { return false; } } }
public class LoginAction extends ExampleSupport { private FirstService fs; public void setFs(FirstService fs) { this.fs = fs; } @Override public String execute() throws Exception { <del>if ("kevin".equals(getUsername())) {</del> if(fs.valid(getUsername())){
<?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:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"> <bean id="firstService" class="com.demo.service.FirstServiceImpl" /> <bean id="loginAction" class="com.demo.action.LoginAction" scope="prototype"> <property name="fs" ref="firstService" /> </bean> </beans>配置文件里添加了业务逻辑组件的bean:firstService以及action的bean,将action的实例化交给spring的IOC容器来管理,并在action的bean中依赖注入业务逻辑组件
注意:这里loginAction的bean的scope为prototype,保证每次请求都会创建一个新的action来处理,避免了action的线程安全问题,因为spring默认scope是单例模式,这样只会创建一个action,而每次访问都是访问同一个action,数据不安全,struts2要求的是每次访问都是不同的action实例
5、最后还要修改一下struts配置文件
先在配置文件顶部加上
<!-- 将action托管给spring --> <constant name="struts.objectFactory" value="spring" />然后把loginAction的配置改一下,class指向spring配置文件里的bean的ID
<action name="Login" class="loginAction"
页面上输入用户名密码,验证正确后进入欢迎页面,并且后台也输出了spring字样,说明spring环境搭建成功,同时和struts2也整合成功
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/kevinxxw/article/details/47107349