`
hypgr
  • 浏览: 279049 次
社区版块
存档分类
最新评论

Spring 与Struts框架的整合常见方法

阅读更多

       Spring Struts 框架的整合通常有好几种方法。每种方法都有不同的特点,而且之间的差异也挺大,对于初学者来说非常难已弄懂每种方法是如何正确配置的。通常大家在网上或者书上看到的 spring struts 整 合都是只介绍一到两种,而且各自介绍的方法又大有差异。这样使初学者更难入手,甚至把各个方法混淆在一起(本人初学时就是如此)。后来经过一段时间的摸 索,参考了大量的资料后,总结出了以下四种方法。四种方法从易到难,从不常用到常用。当然这只是本人的个人观点,没有任何权威性可言,仅供参考。

 

(所有方法的前提是你已经为项目添加好了 spring struts 类库)

第一种:

       需要配置的文件有: web.xml applicationContext.xml

步骤

1 、先配置 web.xml. ,首先让容器在启动的时候加载 applicationContext.xml

       需要在 web.xml 当中添加如下内容:       

< servlet >

    < servlet-name > context </ servlet-name >

    < servlet-class > org.springframework.web.context.ContextLoaderServlet </ servlet-class >

    < load-on-startup > 1 </ load-on-startup >

</ servlet >

( 这只是一种,还可以配置 Listener ,具体内容请上网搜索。 )

这里的介绍有个前提,那就是你的 applicationContext.xml 文件存放到 WEB-INF/ 文件夹下,不能是在别的文件夹,同时文件名也不可以更改为其它的文件名。

如果你真的更改了 applicationContext.xml 这个文件的路径或名字那么请在 web.xml 中加上以下内容:

<context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value> /WEB-INF/classes/spring.xml </param-value>

</context-param>

(红色部分是你自己的路径和文件名)

 

2 、配置 applicationContext.xml

       这里假设你有一个 ( Userdao .java) 类用于进行数据库的操作(具体的操作可暂时忽略)

那么我们在 applicationContext.xml 文件中进行如下配置:

< bean id = "userdao" class = "cn.oyangk.dao.Userdao" >    </ bean >

 

同时也有一个接口 ( IUserDAO .java) ,为什么要接口呢?其实这是一种编程思想――面向接口编程。

你的 Userdao .java 类实现了这个接口,那么我们在 struts 当中的 Action 中可以这样操作了。

 

ServletContext context = this.getServlet().getServletContext();

WebApplicationContext wac = WebApplicationContextUtils. getWebApplicationContext(context);

// 只有通过此种配置方法才可以使用此方法

       IUserDAO dao = (IUserDAO)wac.getBean("userdao");

// 通过 WebApplicationContext 得到 bean

这样我们就可以将操作数据库的 DAO 通过 Spring 来管理了。当我们需要使用的时候,只需通过上面的方法就可以从 spring 当中得到我们想要的 DAO .

所有方法的前提是你已经为项目添加好了 spring struts 类库)

首先你的 web.xml 文件不需要像第一种方法那样去做任何的添加。只需保持默认的就行,也就是在你添加好 struts spring 支持后默认的内容就可以。

以下为你需要进行更改的步骤:

1、             首先为了让 struts 能认识到 spring 那么先在 struts-config.xml 文件中添加 spring 插件。具体内容如下:

<!--   添加 spring 支持 -->

    < plug-in    className = "org.springframework.web.struts.ContextLoaderPlugIn" >

       < set-property property = "contextConfigLocation"

           value = "/WEB-INF/applicationContext.xml" />

    </ plug-in >

2、             修改你的 action 对应的 type 。这是因为,为了让 spring 来管理 action 那么我们需要将 action 生成权力交给 spring 具体参考以下例子:

< action

      attribute = "userForm"

      input = "/jsp/errors.jsp"

      name = "userForm"

      path = "/user"

      scope = "request"

      type="org.springframework.web.struts.DelegatingActionProxy" / > <!-- 截获 action ,让 spring 来生成 action -->

红色部分为关键的一句。通俗一点来讲,就是当我们提交表单时, struts 会把我们提交的请求先转发给 spring 。这里的红色部分所显示的类,就是用来截获我们的请求。

spring 截获到请求后。它就会在 applicationContext.xml 当中寻找对就的 bean 。这里通过 action 当中的 path=”/user” applicationContext.xml bean name 相等来进行匹配。

3、             修改 applicationContext.xml 文件。示例如下:

// 这个类是你的具体实现类,用来操作数据库的!当然他也实现了一个接口,这个接口我们会在 Action 当中使用到。

< bean id = "userdao" class = "cn.oyangk.dao.UserDAOImpl" > </ bean >

// 通过此处的 name = "/user" 与上面的 action 进行匹配。这样 spring 就知道我们的请求是转向哪个 action

    < bean name = "/user" class = "cn.oyangk.struts.action.UserAction" >

       < property name = "userdao" >

           < ref bean = "userdao" />

       </ property >

    </ bean >

4、             现在再来看 UserAction 这个类。

在这里我们只需要定义 UserDAOImpl 这个类的接口,并生成 setter 方法。

具体实现原理及过程:首先当我们提交一个请求到 struts 时, struts 会转发到 spring ,或者说是 spring 截获了我们的请求。然后 spring 根据 path 寻找对应的 action ,将请求转发到相应的 action ,同时实例化一个在此 action 当中设置好了的 dao 对象。此处为 userdao 。此后当我们在 action 类中进行操作时,由于 spring 已经将我们需要的 dao 类实例化好了,我们只需要拿到这个类的引用就可以。那如何拿到这个引用呢?这里就是为什么我们要在 action 定义这个类接口了。 spring 通过接口的 setter 方法使接口能够操作 userdao 了。

分享到:
评论

相关推荐

    Spring与Struts 2整合.zip

    在"Spring与Struts 2整合.zip"这个压缩包中,可能包含了一系列的配置文件、源代码和示例项目,帮助开发者了解和学习如何将这两个框架有效地结合在一起。通过学习和实践这些材料,开发者可以掌握在实际项目中整合...

    spring与struts2整合

    将这两个框架整合在一起可以构建出高效、模块化的 Web 应用。 首先,我们来理解 Spring 框架的核心概念。Spring 的 DI 机制允许开发者通过配置文件或注解来管理对象及其依赖关系,降低了代码的耦合度,使得组件更...

    整合Spring与Struts的几种方法

    整合Spring和Struts是Web开发中常见的需求,这两者都是Java Web开发的重要框架。Spring以其强大的依赖注入(DI)和面向切面编程(AOP)能力,以及对其他框架的良好集成,而Struts则是一个专注于MVC模式的轻量级框架...

    Spring与Struts2整合

    在Java Web开发中,Spring和Struts2...整合Spring和Struts2是一个常见的Java Web开发实践,熟练掌握这一技能能够提高开发效率,提升应用的可维护性和扩展性。在实际开发过程中,可以根据项目的具体需求进行定制和优化。

    struts2_mybatis_spring_框架实例整合_数据库 文档

    例如,struts_ibatis_spring_框架整合_数据库(文档).rar中可能包含了整合步骤、配置示例和常见问题解答等内容。 整合后的系统具有良好的模块化和解耦特性,开发者可以根据需求快速构建复杂的企业级应用。然而,整合...

    Spring + struts 整合的三种主要方式

    使用Spring的`ActionSupport`是一种非常常见的整合方式,它允许我们利用Spring框架的功能来增强Struts框架。具体实现方法是让自定义的Action继承自`org.springframework.web.struts.ActionSupport`类,这样就可以在...

    最新版本的Struts2+Spring4+Hibernate4框架整合

    整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...

    ssh框架整合详细步骤(spring+struts2+hibernate)

    ### SSH框架整合详细步骤(spring+struts2+hibernate) #### 一、整合概述 在现代Web应用开发中,SSH(Struts2、Spring、Hibernate)框架因其各自独特的功能和优势,常被组合使用以构建高效、稳定且易于维护的系统...

    spring+struts2整合源码

    在Java Web开发中,Spring和Struts2是两个非常重要的框架。Spring以其强大的依赖注入(DI)和面向切面编程(AOP)能力,而Struts2则以其优秀的MVC设计模式著称,两者结合可以构建出高效、可维护的Web应用。本文将...

    spring和struts的整合-aop的使用

    在这个"spring和struts的整合-aop的使用"主题中,我们将深入探讨如何将Spring与Struts2集成,并利用Spring的AOP实现日志记录。 首先,整合Spring和Struts2的关键在于配置。通常,我们需要在Struts2的配置文件...

    spring与struts整合开发包

    将这两个框架整合在一起,可以利用Spring的强大功能,如依赖注入(DI)和面向切面编程(AOP),以及Struts提供的优秀用户界面和请求处理能力。接下来,我们将详细探讨Spring和Struts整合开发中的关键知识点。 1. **...

    Spring整合Struts

    在企业级应用开发领域,Spring框架和Struts框架都是极具影响力的技术。Spring以其强大的依赖注入(DI)和面向切面编程(AOP)能力,提供了良好的环境管理和业务逻辑处理;而Struts作为MVC架构的先驱者,在构建复杂的...

    Struts2 Spring3 Hibernate3.3框架整合

    Struts2 Spring3 Hibernate3.3框架整合,增删改查,包含有数据库建表语句,包含有JAR包,包含有源代码。包含有事务的配置以及运用。使用的是Oracle的序列来提供的主键自增,建表和建立序列的sql语句,已经放在工程...

    Spring框架以及与Struts、Mybatis的整合

    **SSM框架整合** SSM框架指的是Spring、Struts2、Mybatis三个框架的整合使用。整合过程中,Spring起到中心控制的作用,同时负责管理Struts2和Mybatis的相关配置和生命周期。 1. **Spring与Struts2整合**:Struts2...

    struts2+spring+mybatis框架

    Struts2、Spring和MyBatis是Java Web开发中经典的三大框架,它们组合起来可以构建出高效、可维护的Web应用程序。以下是对这三个框架及其整合的详细解释。 **Struts2框架** Struts2是一个基于MVC(Model-View-...

    Spring+struts2+hibernate框架整合

    "Spring+Struts2+Hibernate框架整合"是Java Web开发领域中的一种常见架构模式,它结合了Spring的依赖注入、AOP(面向切面编程)、事务管理,Struts2的MVC(模型-视图-控制器)设计模式,以及Hibernate的对象关系映射...

    java(spring+struts2+ibaits)整合框架

    【JavaWeb整合框架:Spring+Struts2+iBatis详解】 在JavaWeb开发领域,Spring、Struts2和iBatis是三个非常重要的组件,它们分别负责不同的职责,共同构建了一个强大的企业级应用开发框架。这个框架组合被称为“SSH...

    spring_struts_hibernate整合开发书籍

    《Spring+Struts+Hibernate整合开发》是一本深入讲解企业级Java应用开发的书籍,它主要聚焦于三大著名开源框架——Spring、Struts和Hibernate的集成与应用。这些框架是Java Web开发中的基石,广泛应用于各种复杂的...

    struts2+hibernate+spring框架整合实列

    在"struts2+hibernate+spring框架整合实列"中,通常会按照以下步骤进行整合: 1. **配置环境**:首先确保所有框架的库文件已添加到项目类路径中,并设置好相应的版本兼容性。 2. **配置Struts2**:在web.xml中配置...

    Spring+Struts2+hibernate+Redis整合

    在IT行业中,SSH(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,而Redis则是一个高性能的键值存储系统,常用于缓存和数据持久化。将SSH与Redis整合,可以提升应用程序的性能和响应速度。下面将...

Global site tag (gtag.js) - Google Analytics