Spring中ApplicationContext加载机制

2023-10-26

加载器目前有两种选择:ContextLoaderListener和ContextLoaderServlet

只是一个是基于Servlet2.3版本中新引入的Listener接口实现,而另一个基于Servlet接口实现。开发中可根据目标Web容器的实际情况进行选择

在web.xml中增加

Xml代码
  1. <listener>    
  2.   <listener-class>    
  3.        org.springframework.web.context.ContextLoaderListener    
  4.   </listener-class>    
  5. </listener>    
  6. 或:    
  7. <servlet>    
  8.     <servlet-name>context</servlet-name>    
  9.     <servlet-class>    
  10.        org.springframework.web.context.ContextLoaderServlet    
  11.     </servlet-class>    
  12.     <load-on-startup>1</load-on-startup>    
  13. </servlet>   
<listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> 或: <servlet> <servlet-name>context</servlet-name> <servlet-class> org.springframework.web.context.ContextLoaderServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet>

  通过以上配置,Web容器会自动加载/WEB-INF/applicationContext.xml初始化
ApplicationContext实例,如果需要指定配置文件位置,可通过context-param加以指定:

Xml代码
  1. <context-param>    
  2.     <param-name>contextConfigLocation</param-name>    
  3.     <param-value>classpath*:applicationContext-*.xml ,/WEB-INF/myApplicationContext.xml</param-value>    
  4. </context-param>   
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:applicationContext-*.xml ,/WEB-INF/myApplicationContext.xml</param-value> </context-param>

 

配置完成之后,即可通过
 WebApplicationContextUtils.getWebApplicationContext方法在Web应用中获取ApplicationContext引用。

如:

BeanFactory factory = WebApplicationContextUtils.getWebApplicationContext(request.getSession     ().getServletContext());
  UserManager userManager = (UserManager)factory.getBean("userManager");

 

实际上在 org.springframework.web.context.ContextLoaderServlet 、org.springframework.web.context.ContextLoaderListener 中实现了以下核心代码:

BeanFactory factory = new ClassPathXmlApplictionContext("applicationContext.xml");

创建IOC容器内配置的对象,并维护对像间的依赖关系.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring中ApplicationContext加载机制 的相关文章

随机推荐

  • 一个简易的区块链demo

    别人写的python版本 python版本源码地址 https github com dvf blockchain installation 环境准备 我使用的是ubuntu 16 04 其它linux版本也可以 需要安装python3 6
  • Android10(Q)系统启动概述

    Android10系统启动概述 一 init进程启动 二 zygote进程启动 三 SystemServer进程启动 四 AMS服务启动 首先用一张图看一下整体的启动流程 因为android系统底层是基于Linux Kernel 所以当Ke
  • LLVM编译流程详解

    LLVM 什么是LLVM LLVM项目是一系列分模块 可重用的编译工具链 它提供了一种代码编写良好的中间表示 IR 可以作为多种语言的后端 还可以提供与变成语言无关的优化和针对多种cpu的代码生成功能 传统编译器分为三个阶段 前端 gt 优
  • 下个版本已定!C++自救新动作!

    自去年年底 美国安全局 NSA 在其所发布的 Software Memory Safety 报告中点名批评C 之后 C 之父Bjarne Stroustrup一顿回怼后 做出决定 内部自救 现在 就让我们看看下一个版本的C 究竟有哪些大动作
  • Jetlinks物联网平台部署

    前端部署 用git拉取前端代码 git clone https github com jetlinks jetlinks ui antd git 使用yarn打包推荐 命令在项目根目录下执行 yarn install yarn run bu
  • 8:操作模式3-interrupt mode

    1 前言 eMMC总线操作包含 boot mode device identification mode interrupt mode data transfer mode 本文主要描述interrupt mode interrupt mo
  • 第一个JDBC程序

    JDBC 1 数据库驱动 例如 声卡 显卡 驱动等 2 JDBC SUN公司为了简化开发人员的 对数据库的统一 操作 提供了一个 Java操作数据库的 规范 俗称JDBC这些规范的实现由具体的厂商去做 对于开发人员来说 我们只需要掌握JDB
  • 【线性代数】逆矩阵的求解过程

    一 方阵的行列式 二 逆矩阵 2 1 使用Numpy 求例2的逆矩阵 import numpy as np A np mat 1 2 3 2 2 1 3 4 3 print 计算A行列式的值 print np linalg det A pr
  • Boost升压电路学习框架

    此文为个人学习框架 如有错误请大家指点 目录 一 Boost电路是什么 二 为什么要用Boost电路 1 还有什么升压电路 其区别是什么 三 Boost电路的模式 1 Boost开环电路 1 1Boost开环电路是什么 1 2Boost开环
  • 软考-软件设计师-数据库1-体系结构-模型-关系代数-规范化

    1 数据库技术基础 2 基本概念 数据库系统DBS 是一个采用了数据库技术 有组织地 动态地存储大量有关数据 方便多用户访问的计算机系统 其由下面四个部分组成 数据库 统一管理 长期存储在计算机内的 有组织的相关数据的集合 硬件 构成计算机
  • Java文件上传【通用】

    Java文件上传 主要是针对于网页来说 一般是通过input的file类型上传文件流到后台 再通过后台处理将文件移动到指定位置达到上传的目的 这里贴代码时 主要是以springboot框架为例 但是是通用的 1 表单提交上传
  • django从1.7升级到1.9后 提示:RemovedInDjango110Warning

    Django项目 把django从1 7升级到1 9后 大量报错 需要做如下修改 1 修改urls py 在django1 9里 urls的配置不再支持字符串型的路由 需要先import 然后直接引用 更加清晰 比如 urlpatterns
  • elk笔记5.2--logstash使用

    elk笔记5 2 logstash使用 1 介绍 2 使用案例 2 1 通过type隔离多个索引 2 2 通过pipeline隔离多个索引 3 注意事项 4 说明 1 介绍 logstash 资源充足的情况下 每个logstash示例采集
  • PromQL的简单使用

    PromQL的简单使用 一 背景 二 PromQL的数据类型 三 字面量 1 字符串字面量 2 浮点数字面量 四 时间序列选择器 1 即时向量选择器 1 组成部分 2 指标名称和匹配器的组合 3 匹配器 2 区间向量选择器 1 时间格式 3
  • 流媒体压力测试工具—推拉流

    目录 前言 介绍 St load 安装篇 推流篇 拉流篇 前言 流媒体压力测试是评估流媒体系统性能和稳定性的重要环节 它可以模拟大量用户同时推送和拉取流媒体数据 以验证系统在高负载情况下的表现 为了进行流媒体压力测试 我们可以使用推拉流工具
  • DN值、辐射率、反射率等

    数字量化值 Digital Number DN 像素值的通用术语是数字量化值或DN值 它通常被用来描述还没有校准到具有意义单位的像素值 如果你只是想看一个图像 和不打算解释像素值的物理意义 那么就可以以DN值的方式来保存 辐射率 Radia
  • 极智AI

    欢迎关注我的公众号 极智视界 获取我的更多笔记分享 大家好 我是极智视界 本文讲解一下 C 手写 softmax 激活函数 在多分类任务中 最后通常使用 softmax 函数作为网络输出层的激活函数 softmax 函数可以对输出值作归一化
  • 互联网络安全、信息安全、计算机网络安全、信息保障有什么区别?

    据CNBC报道 由于黑客 安全漏洞和恶意软件攻击继续成为行业媒体报道的头条新闻 网络犯罪已成为一种全球 流行病 去年对全球组织和人员造成的损失约6000亿美元 因此 打击此类活动已成为一项有利可图且有益的事业 这并不奇怪 所以 如果你正在考
  • 【力扣】1337.矩阵中战斗力最弱的k行

    给你一个大小为 m n 的矩阵 mat 矩阵由若干军人和平民组成 分别用 1 和 0 表示 请你返回矩阵中战斗力最弱的 k 行的索引 按从最弱到最强排序 如果第 i 行的军人数量少于第 j 行 或者两行军人数量相同但 i 小于 j 那么我们
  • Spring中ApplicationContext加载机制

    加载器目前有两种选择 ContextLoaderListener和ContextLoaderServlet 只是一个是基于Servlet2 3版本中新引入的Listener接口实现 而另一个基于Servlet接口实现 开发中可根据目标Web