`
mintelong
  • 浏览: 392352 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Web应用中自动加载 ApplicationContext

    博客分类:
  • j2ee
阅读更多

Web应用中自动加载 ApplicationContext

对于 Web 应用,不必在代码中手动实例化 ApplicationContext。可通过 ContextLoader声明式地创建 ApplicationContext0ContextLoader有以下两个实现类:

ContextLoaderListener。

ContextLoaderServlet。

这两类功能相同,只是 listener不能在 Servlet2.2 兼容的容器中使用。根据 Servlet2.4规范, listener 会随 Web 应用启动时自动初始化,很多 Serlet 2.3 兼容的容器也提供该功能。

使用 ContextLoader Listener

使用 ContextLoaderListener 注册 ApplicationContext 的配置文件如下,注意:下面的配置文件不是在 Spring 的配置文件中增加,而是在 web.xm1文件中增加。

 <!确定配置文件的位置--〉
<context-param><param-name>contextConfigLocation</param-name>
<!--此处可以列出多个Spring 的 XML 配置文件→
<param-value>/WEB-INF/daoContext.xml/WEB-iNF/applicationContext.xml</
param-value></context-param>
<!-- 应用启动时,自动加载listener,该 listener会读取上面确定的XML配置文件。
然后创建ApplicationContext实例--〉
<listener>
<listener-class>org.springframework.web.context.ContextLoader
Listener</listener-class>
</listener>

使用 ContextLoaderServlet

使用 ContextLoaderServlet注册 ApplicationContext的配置文件如下。同样,下面的配置文件也不是在Spring的配置文件中增加,而是在web.xm1文件中增加。

 <servlet>
<!--确定Servlet 的名-->
<servlet-name>context</servlet-name><!--确定 Servlet对应的类--〉
<servlet-class>org.springframework.web.context.ContextLoaderServlet</
servlet-class>
<!--确定Servlet的启动级别--〉
<load-on-startup>l</load-on-startup></servlet>


采用这种方式时,应将context 的启动级别设成最小,即最优先启动。因为ApplicationContext是整个应用的核心。

注意:在两种启动方式中,推荐采用第一种。因为根据Servlet2.4规范, listener比Servlet优先启动;关键问题是有些容器并不支持Serlet2.4规范,即不支持listener。支持 listener的容器有:

ApacheTomcat4.x 及更高版本。

Jetty4.x及更高版本。

Resin 2.1.8 及更高版本。

Orion2.0.2及更高版本。

BEAWebLogic8.1 SP3

不支持 listener 的容器有:

BEAWebLogicupto 8.1 SP2 及更低版本。

IBMWebSphere 5.x 及更低版本。

OracleOC4J9.0.3 及更低版本。

分享到:
评论

相关推荐

    SpringBoot启动过程-mind版.md

    Spring Boot的启动过程可以分为以下几个关键步骤: 1. **加载配置:** Spring Boot会读取项目中的配置文件(如`application....5. **启动内嵌服务器:** 如果应用是一个Web应用,Spring Boot会根据配置自动启动内

    ssm

    &lt;!-- 前端控制器:DispatcherServlet --&gt; &lt;!-- 启动WEB容器时,自动装配ApplicationContext配置信息:...-- 确保web应用程序的类加载器以及加载的类正确释放资源:IntrospectorCleanupListener --&gt;

    Spring3.x企业应用开发实战(完整版) part1

    3.5.2 ApplicationContext中Bean的生命周期 3.6 小结 第4章 在IoC容器中装配Bean 4.1 Spring配置概述 4.1.1 Spring容器高层视图 4.1.2 基于XML的配置 4.2 Bean基本配置 4.2.1 装配一个Bean 4.2.2 Bean的命名 4.3 ...

    Spring.3.x企业应用开发实战(完整版).part2

    3.5.2 ApplicationContext中Bean的生命周期 3.6 小结 第4章 在IoC容器中装配Bean 4.1 Spring配置概述 4.1.1 Spring容器高层视图 4.1.2 基于XML的配置 4.2 Bean基本配置 4.2.1 装配一个Bean 4.2.2 Bean的命名 4.3 ...

    spring jar 包详解

    (11) spring-web.jar 这个jar文件包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、 Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。 (12) ...

    ssh(structs,spring,hibernate)框架中的上传下载

    WEB-INF下的applicationContext.xml为Spring的配置文件,struts-config.xml为Struts的配置文件,file-upload.jsp为文件上传页面,file-list.jsp为文件列表页面。  本文后面的章节将从数据持久层->业务层->Web层的...

    Spring中文帮助文档

    3.8.5. ApplicationContext在WEB应用中的实例化 3.9. 粘合代码和可怕的singleton 3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext 3.11. 基于注解(Annotation-based)的配置 3.11.1. @Autowired ...

    java微信公众号MVC开发框架

    load-on-startup表示Servlet在web应用启动阶段加载,数字代表了启动次序,如果项目使用了springmvc框架,可以调整该数字为2,放到springmvc框架后面启动加载,但实际上Servlet的启动次序并没有太大的关系。...

    Spring API

    3.8.5. ApplicationContext在WEB应用中的实例化 3.9. 粘合代码和可怕的singleton 3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext 3.11. 基于注解(Annotation-based)的配置 3.11.1. @Autowired ...

    基于EXT SSI的简单树实现

    -- web应用启动时初始化applicationContext --&gt; &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener &lt;description&gt;spring初始配置 &lt;param-name&gt;contextConfigLocation ...

    springboot参考指南

    开发Web应用 i. 26.1. Spring Web MVC框架 i. 26.1.1. Spring MVC自动配置 ii. 26.1.2. HttpMessageConverters Spring Boot参考指南 3 iii. 26.1.3. MessageCodesResolver iv. 26.1.4. 静态内容 v. 26.1.5. 模板...

    单点登录源码

    微信公众号管理平台,除实现官网后台自动回复、菜单管理、素材管理、用户管理、消息群发等基础功能外,还有二维码推广、营销活动、微网站、会员卡、优惠券等。 &gt; zheng-wechat-app 微信小程序后台 ## 环境搭建...

    JAVA核心知识点整理(有效)

    1. 目录 1. 2. 目录 .........................................................................................................................................................1 JVM ........................

Global site tag (gtag.js) - Google Analytics