介绍Spring容器时,已经清楚地说过,对于使用Spring的Web应用,无须手动创建Spring容器,而是通过配置文件,声明式地创建Spring容器。因此在Web应用中创建Spring容器有如下两种方式:
- 直接在web.xml文件中配置创建Spring容器。
- 利用第三方MVC框架的扩展点,创建Spring容器。
其实第一种创建Spring窗口的方式更加常见。为了让Spring容器随Web应用的启动而自动启动,借助于ServletContextListener监听器即可完成,该监听器可以在Web应用启动时回调自定义方法——该方法就可以启动Spring容器。
Spring 提供了一个ContextLoadListener,该监听器类实现了ServletContextListener接口。该类可以作为Listener使用,它会在创建时自动查找 WEB-INF/ 下的 applicationContext.xml 文件,因此,如果只有一个配置文件,并且文件名为 applicationContext.xml,则只需在 web.xml 文件中增加如下配置片段即可。
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
如果有多个配置文件需要载入,则考虑使用 <context-param.../> 元素来确定配置文件的文件名。ContextLoaderListener 加载时,会查找名为 contextConfigLocation 的初始化参数。因此,配置 <context-param.../> 时应指定参数名为 contextConfigLocation。
带多个配置文件的 web.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <!--指定多个配置文件--> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/daoContext.xml,/WEB-INF/applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app>
如果没有使用 contextConfigLocation 指定配置文件,则 Spring 自动查找 applicationContext.xml 配置文件:如果有 contextConfigLocation,则利用该参数确定的配置文件。如果无法找到合适的配置文件,Spring 将无法正常初始化。
Spring 根据指定配置文件创建 WebApplicationContext 对象,并将其保存在 Web 应用的 ServletContext 中。大部分情况下,应用中的 Bean 无须感受到 ApplicationContext的存在,只要利用ApplicationContext 的 IoC 即可.
如果需要在应用中获取 ApplicationContext 实例,则可以通过如下代码获取:
//获取当前Web应用的Spring容器 WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);
当然,也可以通过 ServletContext 的 getAttribute 方法获取 ApplicationContext。但使用 WebApplicationContextUtils 类更方便,因为这样无须记住 ApplicationContext 在 ServletContext 中的属性名(属性名为WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE)。使用 WebApplicationContextUtils 还有一个额外的好处:即使 ServletContext 的 WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE 属性没有相应的对象,WebApplicationContextUtils 的 getWebApplicationContext() 方法将会返回空,而不会引起异常。
还有一种情况,即利用第三方MVC框架的扩展点来创建 Spring 容器,比如 Struts1,但这种情况通常只对特定框架才有效,故此处不再赘述。
相关推荐
《轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发电子书1》是一本专注于Java EE企业级应用开发的书籍,主要涵盖了Struts 2、Spring和Hibernate这三个流行开源框架的整合应用。这本书对于Java...
在这个实战教程中,作者李刚聚焦于Struts 2、Spring和Hibernate这三个核心组件的整合,它们是Java EE领域中非常流行的开源框架,用于构建现代化的Web应用程序。 Struts 2是一个强大的MVC(模型-视图-控制器)框架,...
1. **设置环境**:确保已经安装了WebLogic服务器,并配置好JDK、Struts、Spring、Hibernate和必要的库文件。 2. **配置Struts**:在struts-config.xml中配置Action,ActionForm以及对应的ActionForward,这些配置将...
《轻量级Java+EE企业应用实战——Struts 2 + Spring + Hibernate整合开发》是针对Java企业级应用开发的一本实战指南,旨在帮助开发者掌握使用Struts 2、Spring和Hibernate三大框架进行高效集成开发的技术与技巧。...
Struts、Spring和Hibernate是Java开发中非常流行的三大框架,它们各自解决了一部分软件开发中的问题,而将它们整合在一起可以构建出高效、模块化且易于维护的企业级应用。在这个"人力资源管理系统"项目中,我们将...
该书主要围绕着三个核心框架——Struts、Spring和Hibernate,详细阐述了如何在J2EE环境下进行轻量级应用的构建。以下是对这些技术的详细解释: **Struts** Struts是Apache软件基金会的一个开源项目,它是一个基于...
Struts2、Spring和Hibernate是Java开发中常用的三大框架,它们各自解决了一部分软件开发中的问题,而将它们集成在一起,通常称为“SSH2”框架(Struts2、Spring、Hibernate第二代)。这个框架组合提供了完整的MVC...
【轻量级Java_EE企业应用实战_Struts2_Spring3_Hibernate整合开发】这个主题主要涉及的是Java EE领域中的三大框架——Struts2、Spring3和Hibernate的集成应用,这是构建现代Java后端系统的一种常见方式。这些框架...
本示例代码"hibernate5+spring4+springmvc+maven基本框架整合"就是一个典型的应用场景,它展示了如何将四个关键的技术组件——Hibernate 5、Spring 4、Spring MVC和Maven——集成到一个项目中。接下来,我们将深入...
《轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发》是一本深入探讨Java EE企业级应用开发的书籍,尤其关注于轻量级框架的整合使用。Struts 2、Spring和Hibernate,简称SSH,是Java开发中最流行...
《JSf-Spring-Hibernate整合开发案例教程》是一本深入探讨如何将三种主流Java技术——JSF(JavaServer Faces)、Spring框架和Hibernate ORM工具进行高效整合的实践指南。本教程旨在帮助开发者掌握在Web应用程序开发...
【权限管理系统Struts2+Spring+Hibernate整合升级版】是一个基于经典的Java开发框架组合——Struts2、Spring和Hibernate的高级应用。这个系统主要用于企业级的客户关系管理(CRM),并在此基础上进行了优化和增强,...
通过学习《轻量级Java EE企业应用开发实战———Struts 2+Spring+Hibernate整合开发》这本书籍和配套的课件,开发者可以深入理解 SSM 框架的原理和实践,掌握企业级应用开发的关键技能。课程中可能涵盖了如何搭建...
这篇博客“Spring之Spring2.5集成Hibernate3.6”主要探讨了如何将两个经典的开源框架——Spring 2.5和Hibernate 3.6进行整合,以实现数据持久化的高效管理。 Spring 2.5版本是Spring框架的一个重要里程碑,它引入了...
"cxf+spring+hibernate集成整合jar包"就是这样一个集合,它将三个关键的技术框架——CXF、Spring和Hibernate整合在一起,为开发人员提供了一个强大的后端服务开发平台。以下是对这些技术及其集成的详细解释。 **CXF...
在本课程"WebWork+Spring+Hibernate整合开发网络书城 第5讲"中,我们将深入探讨如何将这三大主流的Java技术栈——WebWork、Spring和Hibernate——集成在一起,构建一个功能完善的网络书城系统。这三大框架的结合,...
《Spring+Hibernate 教程》是一份专注于Java开发领域中两个关键框架——Spring和Hibernate的综合教程。这两个框架在企业级应用开发中扮演着至关重要的角色,Spring作为全面的轻量级容器,提供了依赖注入、AOP(面向...
5. 整合Hibernate和Spring,通过Spring的JdbcTemplate或HibernateTemplate简化数据库访问。 6. 整合Struts 2、Spring和Hibernate,构建统一的异常处理机制。 7. 使用Spring AOP实现日志记录、权限控制等切面功能。 8...
《整合Hibernate、Struts2与Spring的学生信息管理系统详解》 在Java Web开发领域,整合Hibernate、Struts2和Spring框架是构建高效、可维护性高的应用程序的常见实践。本系统——"学生信息管理系统",正是这种整合...