第一种方式:
整合方式:
Spring与Struts的整合
Action 继承Spring提供的Action ,该Action父类为Struts的Action,添加了方法getWebApplicationContext()
可以通过此方法获取ApplicationContext对象,从而获取到Bean
Spring与Hibernate的整合
通过动态代理整合HibernateTemplate
实现流程:
1.实现Spring与Hibernate的集成:
public class UserDaoImpl implements UserDao {
private HibernateTemplate ht;
/**
* 添加用户
*/
public boolean addUser(User user) {
try{
ht.save(user);
return true;
}catch(Exception e){
e.printStackTrace();
}
return false;
}
/**
* 删除用户
*/
public boolean deleteUser(User user) {
try{
ht.delete(user);
return true;
}catch(Exception e){
e.printStackTrace();
}
return false;
}
}
<!-- 配置数据源的bean -->
<bean id="datasrc" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/spring"></property>
<property name="username" value="root"></property>
<property name="password" value=""></property>
</bean>
<!-- 配置SessionFactory的Bean -->
<bean id="sessionfactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="datasrc"></property>
<!-- 配置映射文件 -->
<property name="mappingResources">
<list>
<value>com/dowebber/entity/user.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
</props>
</property>
</bean>
<!-- 配置HibernateTemplate的Bean-->
<bean id="hibernatetemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionfactory"></property>
</bean>
<!-- 配置接口的实现类的Bean-->
<bean id="userdao" class="com.dowebber.dao.impl.UserDaoImpl">
<property name="ht" ref="hibernatetemplate"></property>
</bean>
<!-- 配置userdaoimpl的bean -->
<bean id="userdaoimpl" class="com.dowebber.service.dao.impl.UserServiceDaoImpl">
<property name="dao" ref="userdao"></property>
</bean>
<!-- 配置事务的bean 使用hibernate的事务类,spring提供 -->
<bean id="transactionmanager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionfactory"></property>
</bean>
<!-- 配置代理的bean -->
<bean id="userdaoproxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="target" ref="userdaoimpl"></property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
</props>
</property>
2.整合Spring与Struts
2.1 写Action,继承Spring提供的ActionSupport
import org.springframework.web.struts.MappingDispatchActionSupport;
import com.dowebber.entity.User;
import com.dowebber.service.dao.UserServiceDao;
public class UserAction extends MappingDispatchActionSupport {
public ActionForward login(ActionMapping mapping, ActionForm arg1,
HttpServletRequest request, HttpServletResponse response) throws Exception {
UserServiceDao dao = (UserServiceDao) this.getWebApplicationContext().getBean("userdaoproxy");
}
}
2.2 在web.xml中配置Spring
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
Struts的配置不变
应用流程: 请求-->ActionServlet-->构造Action的父类,即Spring提供ActionSupport,构造ApplicationContext->构造bean->执行Action->执行Bean
整合方式二:
集成方式
1.Action中把需要的bean设置成成员属性
2.把Action配置成Bean
3.struts的action的type指向Spring的代理类
4.配置struts的loader插件
请求过程 请求-->ActionServlet->Spring代理类-->加载spring配置文件,获取Action的Bean并注入其中的属性-->执行Action中的方法
整合的实现:
Action中添加需要的bean的私有属性并提供setter和getter
public class UserAction extends MappingDispatchAction {
private UserServiceDao dao;
public UserServiceDao getDao() {
return dao;
}
public void setDao(UserServiceDao dao) {
this.dao = dao;
}
public ActionForward login(ActionMapping mapping, ActionForm arg1,
HttpServletRequest request, HttpServletResponse response) throws Exception {
}
}
配置Action的Bean
<!-- Action的bean -->
<bean name="/user/login" class="com.dowebber.action.UserAction">
<property name="dao" ref="userdaoimpl"></property>
</bean>
配置struts的action指向spring的代理类
<action-mappings >
<action
path="/user/login"
type="org.springframework.web.struts.DelegatingActionProxy"
parameter="login"
>
<forward name="success" path="/success.jsp"></forward>
<forward name="fail" path="/fail.jsp"></forward>
</action>
配置struts的插件,插件中加载spring的配置文件
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/spring.xml" />
</plug-in>
整合方式三:
配置流程:
1.Action中添加需要的bean的私有属性并提供setter和getter
2.spring中配置Action的Bean bean的name属性应该与Action的Path属性一致,不需要提供id
3.在struts配置中,配置controller和plugin,Action的type无需设置代理
实现过程:
1.Action中添加需要的bean的私有属性并提供setter和getter
public class UserAction extends MappingDispatchAction {
private UserServiceDao dao;
public UserServiceDao getDao() {
return dao;
}
public void setDao(UserServiceDao dao) {
this.dao = dao;
}
public ActionForward login(ActionMapping mapping, ActionForm arg1,
HttpServletRequest request, HttpServletResponse response) throws Exception {
}
}
2.spring中配置Action的Bean bean的name属性应该与Action的Path属性一致,不需要提供id
<!-- Action的bean -->
<bean name="/user/login" class="com.dowebber.action.UserAction">
<property name="dao" ref="userdaoimpl"></property>
</bean>
3.在struts配置中,配置controller和plugin,Action的type无需设置代理
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"></controller>
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/spring.xml" />
</plug-in>
分享到:
相关推荐
SSH整合方式5种 SSH整合方式5种 SSH整合方式5种
实例讲解spring整合struts的几种方式 1,使用Spring 的 ActionSupport 2, 使用Spring 的 DelegatingRequestProcessor 类。 3,全权委托。
ssh整合的讲解ssh整合的讲解ssh整合的讲解ssh整合的讲解
ssh2 三种方式 一种:全是xml 二种 xml加注解 三种 全是注解
SSH 整合原代码 包括2种方式:注解&xml;配置 (已测试, 原创) 包含所需的lib
SSH整合详细步骤&SSH整合详细步骤SSH整合详细步骤&SSH整合详细步骤
ssh整合所需要的jar包,ssh整合所需要的jar包,ssh整合所需要的jar包,
SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例
Maven ssh整合框架Maven ssh整合框架Maven ssh整合框架Maven ssh整合框架Maven ssh整合框架
SSH整合SSH整合SSH整合SSH整合SSH整合SSH整合SSH整合SSH整合SSH整合
SSH整合视频,无法免费上传,共同学习,主页有更多的学习视频
ssh中所有需要的jar都包括。不重复不冲突,以及各个jar均通过检测。
ssh 整合jar包。
最新整理的比较全面的SSH三大框架整合所需要的jar包,自己特意整理出来,方便大家下载使用!最新整理的比较全面的SSH三大框架整合所需要的jar包,自己特意整理出来,方便大家下载使用!
SSH整合驱动包!SSH整合驱动包SSH整合驱动包!SSH整合驱动包!SSH整合驱动包!SSH整合驱动包!SSH整合驱动包!SSH整合驱动包!SSH整合驱动包!SSH整合驱动包!SSH整合驱动包!
简单易懂的ssh整合,适合初学者简单易懂的ssh整合,适合初学者简单易懂的ssh整合,适合初学者
JavaWeb中的Jar包整合,并配置了Struts的配置文件,hibernate的配置文件,Spring的配置文件。(配置文件是空的,但是有配置文件的头)
jar包 ssh整合的所以jar包 三大框架 资源完整 丰富多彩
SSH整合的例子 带SQL语句 很全的一个例子. 增加AOP事务处理
ssh struts+spring+hibernate整合所属所有架包,版本不冲突。下载可用