struts2对依赖注入的支持

说明:
依赖注入(Dependency Injection)还有一个名字,即控制反转(Inversion of Control,IoC)。

什么是控制反转呢?
控制反转就是由容器控制对象之间的关系,而非传统现实中,由程序代码直接操控。控制权由应用程序转移到了外部容器,这种控制权的转移即控制反转。

什么是依赖注入?
依赖注入将对象创建和对象链接的责任从对象自身转移到了IoC容器,由容器在运行期间将对象之间的依赖关系注入到对象之中。
依赖注入和控制反转表述的是同一个意思。


开发步骤
1.将struts2提供的spring插间struts2-spring-plugin-2.0.11.jar和spring的jar包放到lib目录下。编写web.xml,配置spring监听器

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>

2.编写spring的配置文件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"
xsi:schemaLocation ="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id ="userDao" class ="org.sunxin.struts2.persistence.dao.UserDao"/>
</beans>
3.修改RegistrterAction.java

package org.sunxin.struts2.action;
import java.util.Date;
import org.sunxin.struts2.persistence.dao.UserDao;
import org.sunxin.struts2.persistence.entity.User;
import com.opensymphony.xwork2.ActionSupport;
public class RegisterAction extends ActionSupport
{
private static final long serialVersionUID = 3970199804617664569L;
private User user;
private UserDao userDao;

/**
* 在构造方法中初始化UserDao对象
*/
/*public RegisterAction()
{
userDao = new UserDao();
}*/

public void setUserDao(UserDao userDao)
{
this.userDao = userDao;
}

/**
* 请求register!default.action,调用doDefault方法
*/
@Override
public String doDefault() throws Exception
{
return INPUT;
}
/**
* 调用UserDao的register方法注册用户
*/
@Override
public String execute() throws Exception
{
user.setRegDate(new Date()); //注意不要忘了设置注册日期
userDao.register(user);
return SUCCESS;
}

/**
* 为user对象提供getter方法
* @return
*/
public User getUser()
{
return user;
}
/**
* 为user对象提供setter方法
* @param user
*/
public void setUser(User user)
{
this.user = user;
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值