`
菜菜土人
  • 浏览: 12635 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Struts整和Spring

 
阅读更多
为了在Struts中加载Spring context,需要在struts-config.xml文件中加入如下部分:
<struts-config>
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml" />
</plug-in>
</struts-config>
通过Struts的plug-in在Struts和Spring之间提供了良好的结合点。通过plug-in我们实现了Spring context的加载,不过仅仅加载Spring context并没有什么实际的意义,还应该经过配置将Struts的Action交给Spring容器进行管理。
<action-mappings>
<action path="/login"
type="org.springframework.web.struts.DelegatingActionProxy"
name="loginForm">
<forward name="success" path="/main.jsp" />
<forward name="failure" path="/login.jsp" />
</action>
在form bean这个节点上与传统的Struts配置没有什么区别,而在Action上面则发生了变化。在传统的action节点上type属性写入action类的完整类名,而和Spring结合后在这点上是使用了Spring提供的DelegatingActionProxy作为action的type属性,DelegatingActionProxy同样是org.apache.struts.action.Action的一个子类,它将把调用请求转交给真正的Action实现。通过这样的方式,Spring获得了Action实例的管理权,它将对Action进行调度,并为Struts提供所需的Action实例。这样,就可以将Action看作是Spring的一个bean,它就可以享受Spring的所有服务,如依赖注入、实例管理、事务管理等。
在applicationContext.xml中相应的配置如下的节点:
<beans>
.......
<bean name="/login" class="net.xiaxin.action.LoginAction"
singleton="false">
<property name="userDAO">
<ref bean="userDAOProxy" />
</property>
</bean>
</beans>
最后这个bean的配置是关键,这个名为“/login”的bean与Struts中的
<action path="/login" ……>
……
</action>节点相对应,这样,Spring Bean Name与Struts Action Path相关联,当Struts加载对应的Action时,DelegatingActionProxy就根据传入的path属性,在Spring Context寻找对应bean,并将其实例返回给Struts。与此同时,还可以看到,"/login" bean 中包含了一个userDAO 引用,Spring 在运行期将根据配置为其提供userDAO 实例,以及围绕userDAO 的事务管理服务。这样一来,对于Struts 开发而言,我们既可以延续Struts 的开发流程,也可以享受Spring 提供的事务管
理服务。而bean 的另外一个属性singleton="false",指明了Action 的实例获取方式为每次重新创建。这也解决了Struts中令人诟病的线程安全问题。
至此,SS组合已经将Struts MVC以及Spring中的Bean管理、事务管理融为一体。如
果算上userDAO 中的Hibernate 部分,我们就获得了一个全面、成熟、高效、自顶而下的
Web 开发框架。
分享到:
评论

相关推荐

    struts整合spring开发实例(二)

    这个"struts整合spring开发实例(二)"将继续上一部分的讲解,旨在帮助开发者理解这两个流行框架协同工作的机制。 Struts是一个强大的MVC(模型-视图-控制器)框架,用于构建可维护性高、结构清晰的Java Web应用。而...

    struts整合spring开发实例(三)

    总的来说,"Struts整合Spring开发实例(三)"可能涵盖了Spring和Struts的深度集成,包括Action的Spring管理、依赖注入、AOP应用以及事务管理等方面。这不仅增强了应用的功能,也提高了代码的可维护性和可测试性。在...

    Struts整合Spring步骤

    整合Spring** - **导入Spring的jar包**:首先,导入`spring.jar`,这是Spring框架的基本库。根据项目需求,可能还需要其他Spring模块的jar包。 - **创建applicationContext.xml**:在`WEB-INF`目录下创建`...

    struts 整合spring 例子,测试通过

    Struts2 和 Spring 整合是Java开发中常见的实践,主要目的是为了利用Spring的强大功能,如依赖注入(DI)和面向切面编程(AOP),同时保持Struts2的MVC架构的优势。以下是对整合过程的详细说明: 首先,Spring框架...

    struts整合spring开发实例

    Struts和Spring是两个在Java Web开发中广泛使用的框架,它们各自解决了一部分问题,而将两者整合可以进一步提升应用的灵活性和可维护性。Struts主要负责MVC(Model-View-Controller)架构中的控制层,而Spring则是一...

    Struts+Spring+Hibernate整合教程

    在整合Spring与Struts时,可以使用Spring提供的ActionSupport类来简化Spring中的Action的开发,或者通过覆盖Struts的RequestProcessor类以及将动作管理委托给Spring来实现更深层次的整合。同时,利用拦截器对Struts...

    Struts2整合Spring、JPA

    Struts2整合Spring和JPA是企业级Java应用开发中常见的技术组合,它们分别负责不同的职责:Struts2作为一款成熟的MVC框架,主要用于处理Web层的请求与响应;Spring作为一个全面的轻量级框架,提供了依赖注入(DI)和...

    第 Struts 整合Spring开发PPT学习教案.pptx

    首先,整合Spring到Web应用中需要以下步骤: 1. **添加Spring库**:在项目中引入Spring框架所需的JAR文件,这些文件通常包括Spring的核心库、AOP库和Web相关的库。 2. **配置web.xml**:在`web.xml`中添加一个监听...

    Struts整合Spring

    整合Struts与Spring的主要目的是利用Spring的强大功能来增强Struts的控制层,提高代码的可测试性和可维护性。 在整合Struts和Spring的过程中,首先需要确保你的项目环境中包含了这两个框架的兼容版本。对于本例中的...

    Myeclipse下整合springstruts2

    在本文中,我们将探讨如何在MyEclipse环境中整合Spring和Struts2框架,这对于初学者来说是一个重要的学习步骤。整合这两个框架可以创建一个强大的MVC架构,方便地管理业务逻辑和服务层。以下是如何进行环境搭建和...

    Struts+Spring+Hibernet整合例子

    Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子

    struts+spring+hibernate整合

    通过以上步骤,一个基本的Struts、Spring和Hibernate整合的应用就搭建完成了。这个整合的关键在于Struts处理HTTP请求,Spring管理业务对象和依赖,而Hibernate则处理数据库操作。这样的架构可以实现松耦合,便于代码...

    SSH整合源码(Struts+Spring+Hibernate整合用户注册例子)

    SSH整合,全称为Struts、Spring和Hibernate的集成,是一种常见的Java Web开发框架组合,用于构建高效、可维护的企业级应用程序。在这个例子中,我们看到的是一个基于SSH的用户注册功能的实现,使用的开发工具是...

    struts和spring整合(两种实现方法)

    用DelegatingRequestProcessor和DelegatingActionProxy两种方法实现struts和spring的整合,不同的地方就在struts-config.xml文件中,当前文件中DelegatingRequestProcessor是注释的。

    struts1 spring ibatis整合项目源码

    struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码

    SSM(Struts2+Spring+MyBatis)框架整合必须的,jar包

    SSM框架整合是Java开发中常见的技术栈,它由三个主要部分组成:Struts2、Spring和MyBatis。这三者结合在一起,为开发者提供了一个高效、灵活且功能强大的后端开发解决方案。 首先,Struts2是一个基于MVC(Model-...

    Struts+Spring+Hibernate整合教程.pdf

    整合Struts、Spring和Hibernate可以构建出高度模块化的应用,提高开发效率和代码质量。然而,随着Java EE技术的发展,现代Web应用更多地转向Spring Boot、Spring MVC和MyBatis等更现代的解决方案,它们在易用性、...

    struts2 spring hibernate 整合

    【SSH整合】指的是Struts2、Spring和Hibernate这三个开源框架的集成应用,它们在JavaEE企业级开发中占据着重要地位。Struts2是一个MVC框架,负责处理用户请求和控制应用程序流程;Spring是一个全面的后端解决方案,...

    struts+spring+hibernate三大框架整合

    **Spring整合Struts** Spring整合Struts主要有三种方式: 1. **使用Spring的ActionSupport**:Action类直接继承自Spring的ActionSupport,通过`super.getWebApplicationContext()`获取Spring上下文,然后通过`...

Global site tag (gtag.js) - Google Analytics