第一种方式:
整合方式:
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整合的三种方式主要指的是将Spring、Struts和Hibernate这三个流行的Java开源框架集成到一起,以构建高效的企业级Web应用程序。下面将详细讲解这三种整合方法。 1. 使用Spring的`ActionSupport` 在Spring与...
然而,本文探讨的“SSH整合5种方式”并非指SSH协议本身的五种使用方法,而是指如何将SSH与Spring框架进行整合的五种策略。Spring框架是Java平台上的一个开源框架,用于构建企业级应用程序,它提供了丰富的功能,包括...
接下来,我们将深入探讨SSH2的三种整合方式。 **一、全XML配置方式** 在全XML配置方式中,所有的配置信息,包括Struts2、Spring和Hibernate的设置,都写在XML文件中。这通常涉及到以下文件: 1. `struts.xml` - ...
本资源提供的是SSH整合的原代码,涵盖了通过注解和XML配置两种方式进行整合的方法,并且已经过测试,确保其可行性和原创性。以下是关于SSH整合及这两种配置方式的详细知识: 1. **Struts框架**:Struts是一个基于...
SSH整合在JavaWeb开发中是一项重要的技术组合,它包含了三个主要的开源框架:Spring、Struts和Hibernate。这些框架分别负责应用的业务逻辑管理、视图层控制和数据持久化。接下来,我们将深入探讨SSH整合的关键知识点...
SSH整合jar包是一个集合了所有在Java开发中用于Spring、Struts和Hibernate(SSH)集成应用所需的库文件的压缩包。SSH是Java企业级开发中非常流行的一种框架组合,它能够帮助开发者快速构建高效、可维护的企业级Web...
总的来说,SSH整合提供了一种强大的方式来组织和管理复杂的Java Web应用,通过合理利用这三个框架的功能,可以有效地提高开发效率和代码质量。然而,理解和熟练掌握每一个框架的核心概念和配置是至关重要的,这样...
SSH整合是Java开发中一种常见的框架集成方式,它结合了Struts2、Spring和Hibernate三个开源框架,以实现高效、灵活的企业级应用开发。这里提到的"ssh整合所需所有架包"是一个包含这三个框架相应版本的集合,确保它们...
这三种框架分别负责表现层、业务层和持久层的管理,通过合理的整合,可以构建出高效、灵活且易于维护的Web应用。下面将详细介绍SSH整合所需的关键jar包以及它们在整合过程中的作用。 1. **Struts2框架**:Struts2...
在SSH整合中,Spring主要负责管理其他组件,如Struts和Hibernate,以及应用程序中的业务逻辑和服务。 1. **依赖注入**:Spring通过XML配置或注解方式实现对象间的依赖关系,使得代码更易于测试和维护。 2. **AOP**...
SSH整合是指将Struts2、Hibernate3.2和Spring2.5这三大开源框架集成到一个项目中,以实现高效、灵活的Web应用开发。这三个框架各司其职,Struts2负责MVC(Model-View-Controller)模式中的控制层,Spring2.5则作为...
SSH整合是Java Web开发中常见的一个技术组合,指的是Spring、Struts和Hibernate三个开源框架的集成。Spring提供了依赖注入和面向切面编程的能力,Struts则处理MVC(Model-View-Controller)架构中的控制器部分,而...
在"三大框架ssh整合Demo"中,Struts2作为前端控制器,接收用户的请求,并根据配置决定调用哪个Action进行处理,最后返回相应的视图。 **Hibernate** 是一个强大的ORM(对象关系映射)框架,它简化了Java应用与...
这个"SSH整合实例源码"提供了一种实际应用这些框架的方法,帮助开发者理解如何在项目中有效地结合它们。以下是关于SSH整合及其中涉及的关键知识点的详细解释。 1. **Struts 2**: Struts 2 是一个基于MVC(Model-...
SSH整合项目指的是在Java开发中,使用Spring、Struts2和Hibernate这三个开源框架进行集成的Web应用程序项目。这个项目描述中提到的是一个已经搭建完成的框架,但是去掉了Hibernate的配置文件,可能意味着项目选择了...
SSH整合在IT行业中通常指的是Struts、Hibernate和Spring三大框架的集成应用,它们是Java Web开发中的重要组件,尤其在企业级应用系统中广泛应用。银行管理系统是一个典型的业务复杂、安全性要求高的应用场景,SSH...
SSH整合是Java企业级开发中一种常见的解决方案,它极大地提高了开发效率,降低了系统的耦合度。 1. **Spring框架**: Spring是一个全面的后端应用程序框架,提供依赖注入(DI)和面向切面编程(AOP)等核心功能。...
SSH整合是Java开发中一种常见的框架组合,包括Spring、Struts和Hibernate三个核心组件。Spring提供了依赖注入(DI)和面向切面编程(AOP),Struts负责MVC模式的实现,而Hibernate则是用于对象关系映射(ORM)。在这...
SSH整合是Java Web开发中的一种常见技术栈,主要包括Spring、Struts和Hibernate这三个框架的集成。这个名为"SSH整合小项目"的资源提供了一个实践示例,帮助开发者理解和掌握这三大框架协同工作的机制。 首先,...