`
junli0411
  • 浏览: 141960 次
  • 来自: ...
社区版块
存档分类
最新评论

Spring读书笔记(四)与Struts整合

阅读更多
《Spring开发指南》只写了一种与struts整合的方法,另一种到Spring2.0 Demo自带的Doc中查找到Action直接继承ActionSupport。详细信息:

To integrate your Struts application with Spring, you have two options:

  • Configure Spring to manage your Actions as beans, using the ContextLoaderPlugin, and set their dependencies in a Spring context file.

  • Subclass Spring's ActionSupport classes and grab your Spring-managed beans explicitly using a getWebApplicationContext() method.

As previously mentioned, you can retrieve the WebApplicationContext from the ServletContext using the WebApplicationContextUtils class. An easier way is to extend Spring's Action classes for Struts. For example, instead of subclassing Struts' Action class, you can subclass Spring's ActionSupport class.

The ActionSupport class provides additional convenience methods, like getWebApplicationContext(). Below is an example of how you might use this in an Action:

public class UserAction extends DispatchActionSupport {    public ActionForward execute(ActionMapping mapping,                                 ActionForm form,                                 HttpServletRequest request,                                 HttpServletResponse response)            throws Exception {        if (log.isDebugEnabled()) {            log.debug("entering 'delete' method...");        }        WebApplicationContext ctx = getWebApplicationContext();        UserManager mgr = (UserManager) ctx.getBean("userManager");        // talk to manager for business logic        return mapping.findForward("success");    }}

Spring includes subclasses for all of the standard Struts Actions - the Spring versions merely have Support appended to the name:

 

The recommended strategy is to use the approach that best suits your project. Subclassing makes your code more readable, and you know exactly how your dependencies are resolved. However, using the ContextLoaderPlugin allow you to easily add new dependencies in your context XML file. Either way, Spring provides some nice options for integrating the two frameworks.

可见第二种方法更加简便。

JPetstore例子中并没有使用此方法,而使用了第三种方法。同样只需要动Action。如下:

public abstract class BaseAction extends Action {

  private PetStoreFacade petStore;

 public void setServlet(ActionServlet actionServlet) {
  super.setServlet(actionServlet);
  if (actionServlet != null) {
   ServletContext servletContext = actionServlet.getServletContext();
   WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
   this.petStore = (PetStoreFacade) wac.getBean("petStore");
  }
 }

 protected PetStoreFacade getPetStore() {
  return petStore;
 }

}
ok,这三种方法都可以让Spring与Struts整合,相比较第一种(因为配置很多这里没写,见refernce 16.3.1),
第二第三种方法比较简洁,侵入不多。

 

分享到:
评论

相关推荐

    spring-note spring 读书笔记

    这份"spring-note spring 读书笔记"深入探讨了Spring的核心概念以及如何与其他流行技术如JDBC、Hibernate、Struts和事务管理进行集成。 1. **Spring依赖注入(IOC)**: Spring的IOC容器是其核心,负责创建对象并...

    struts+hibernate+spring读书笔记

    1. **Struts与Spring集成**:Spring MVC可以作为Struts的替代品,或者通过Spring的Struts Action代理来管理Struts的Action实例。 2. **Hibernate与Spring集成**:Spring提供HibernateTemplate或SessionFactoryBean,...

    学习笔记之struts2整合Spring

    下面将详细讲解如何进行Struts2与Spring的整合以及涉及的关键知识点。 首先,为了实现整合,我们需要引入`struts2-spring-plugin-2.0.6.jar`这个包,这是Struts2提供的一个插件,专门用于与Spring的集成。这个插件...

    SSH笔记-Spring整合Struts2

    本笔记将主要聚焦于如何将Spring与Struts2进行整合,以实现更加灵活和可维护的系统架构。 首先,Spring的核心在于其Inversion of Control(IoC)容器,也称为依赖注入容器。它负责创建对象并管理它们之间的关系,...

    Struts2笔记+Hibernate3.6笔记+Spring3笔记

    6. **事务管理**: 提供编程和声明式事务管理,与Spring整合时通常使用声明式事务。 **Spring3笔记** Spring是企业级应用的全面解决方案,包括依赖注入(DI)、面向切面编程(AOP)、事务管理等。以下是关键点: 1...

    Spring学习笔记 包括SSH的整合

    Struts2与Spring整合后,可以利用Spring的DI功能管理Struts2的Action对象,实现更灵活的控制流程。 **Hibernate持久化框架** Hibernate是一个对象关系映射(ORM)工具,它将Java对象与数据库表进行映射,简化了数据...

    SSH笔记-整合Spring2、Struts2、Hibernate4

    SSH整合是Java Web开发中的一种常见模式,它指的是Spring、Struts2和Hibernate这三大开源框架的集成。这种集成能够构建出高效、可维护的Web应用程序。以下是对SSH整合的详细解析: 一、Spring框架 Spring是Java企业...

    轻量级J2EE企业应用实战--Struts+Spring+Hibernate整合开发笔记

    轻量级 J2EE 企业应用实战 -- Struts+Spring+Hibernate 整合开发笔记 本资源为轻量级 J2EE 企业应用实战开发笔记,涵盖 Struts、Spring 和 Hibernate 三大框架的整合开发实践。笔记从 JDK 安装和配置环境变量开始,...

    Spring学习笔记(精华全记录)

    6. **与其他框架的整合**:Spring可以很好地与其他流行的框架(如Struts用于视图层,Hibernate用于模型层)进行整合。这种组合方式通常被称为SSH (Struts + Spring + Hibernate) 架构。 #### Spring的核心概念 - *...

    Struts+Spring+Hibernate整合笔记

    5. 配置Struts与Spring的整合,通过ContextLoaderPlugIn插件加载Spring上下文。 6. 配置Log4J日志系统,确保开发过程中有详细的日志记录。 在持久化类生成时,可以选择是否生成DAO和Mapping文件,以及是否使用...

    struts2.21 spring hibernate 整合笔记

    Struts2、Spring和...在实际开发中,Struts2、Spring和Hibernate的整合提供了强大的功能和灵活性,但同时也需要注意性能优化和代码的整洁性。理解这三个框架的核心原理和整合机制,有助于提升开发效率和应用质量。

    struts+spring+hibernate 整合笔记

    ### Struts + Spring + Hibernate 整合笔记 #### 前言 随着企业级应用的不断发展壮大,单一框架已经难以满足复杂多变的业务需求。因此,将多种框架进行有机整合成为了开发高效率、高性能应用的重要手段之一。本...

    Spring笔记.doc

    3. 框架整合:Spring 提出了“一站式”解决方案的概念,可以方便地与SSH(Spring、Struts、Hibernate)等其他框架整合,提供统一的管理方式。 【Spring 依赖注入(IOC)与面向切面编程(AOP)】 1. IOC(依赖注入...

    spring+hibernate+struts2 +mybatis整合笔记

    本篇笔记主要介绍如何将Spring、Hibernate、Struts2与MyBatis进行整合,形成一个完整的Web应用开发框架。 #### 二、环境搭建与准备工作 1. **安装JDK**:确保系统中已经安装了JDK,并配置好环境变量。 2. **下载所...

    struts2四天的学习笔记

    13. ** strut2四天笔记**:这份学习笔记可能涵盖了以上所有知识点,包括如何创建Action,配置struts.xml,使用OGNL表达式,处理异常,以及实践中的各种技巧和最佳实践。 在四天的学习过程中,你应该通过实践和理解...

    马士兵Spring课堂笔记(超级详细版).pdf

    本资源主要讲解了Spring框架的基础概念和应用,涵盖了面向接口编程、IOC/DI、AOP、Spring应用IOC/DI、Spring应用AOP、Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合、Spring JDBC面向接口编程等内容。 面向接口...

    struts+spring+hibernate整合配置笔记

    以上就是关于"Struts+Spring+Hibernate整合配置"的相关知识点,理解并熟练掌握这些内容,能帮助开发者构建出高效、稳定的Java Web应用程序。在实际项目中,还需要根据具体需求进行调整和优化,以达到最佳的系统性能...

    spring4_struts2_hibernate4整合的整理文件

    本文档是在整合struts2,spring4,hiernate4后所做的笔记以及怎么整合技巧

    SSH(Struts1.0+Spring+Hibernate)框架集成笔记

    - **Spring与Struts1.0的整合**:Spring可以通过Struts Plugin插件与Struts进行整合,实现Action的自动装配以及其他高级功能。 #### 四、配置文件详解 ##### 4.1 Struts-config.xml文件 ```xml <struts-config> ...

    Struts 2 + Spring 2.0 + Hibernate 3.0整合笔记

    此外,还需要配置Struts 2与Spring的集成,通常是通过使用`spring-plugin`插件来实现。这样,Action实例可以从Spring容器中获取,实现依赖注入。 4. **使用Spring的事务管理**:由于Spring提供了事务管理能力,我们...

Global site tag (gtag.js) - Google Analytics