spring容器启动
1 主要类
ContextLoaderListener:注册在web.xml中,web应用启动时,会创建它,并回调它的initWebApplicationContext()方法,从而创建并启动spring容器。必须继承ServletContextListener。
WebApplicationContext:用于web应用的spring容器上下文,它代表了spring容器,继承自ApplicationContext。是一个接口,在ContextLoader.properties配置文件中可以声明它的实现类。默认实现类为XmlWebApplicationContext。ApplicationContext继承自BeanFactory,并扩展了它的很多功能。
ServletContext:web容器(如tomcat)的上下文,不要和ApplicationContext搞混了。
1 主要流程
web容器的初始化过程为
- web容器(如tomcat)读取web.xml, 读取文件中两个节点和
- 容器创建ServletContext,它是web的上下文,整个web项目都会用到它
- 读取context-param节点,它以 键值对的形式出现。将节点值转化为键值对,传给ServletContext
- 容器创建中的实例,创建监听器。监听器必须继承ServletContextListener
- 调用ServletContextListener的contextInitialized()方法,spring容器的创建和初始化就是在这个方法中
https://blog.csdn.net/u013510838/article/details/75066884
spring容器启动的更多相关文章
- spring容器启动扩展
我们可以在spring容器启动时添加自己的定制化初始化工作. 1)具体方法为:在web.xml中配置初始化属性contextInitializerClasses的值例如: <context-pa ...
- 一则spring容器启动死锁问题(DefaultListableBeanFactory/DefaultSingletonBeanRegistry)
线上发现一个问题,应用在启动时会卡死,log上并没有什么异常输出,初判应该是死锁问题. 抓现场的thread dump文件, 确实是有两个线程有deadlock问题. 线程一 "HSFBiz ...
- spring容器启动的加载过程(二)
第六步: public abstract class AbstractApplicationContext extends DefaultResourceLoader implements Confi ...
- spring容器启动的加载过程(一)
使用spring,我们在web.xml都会配置ContextLoaderListener <listener> <listener-class> org.springframe ...
- ServletContext与Web应用以及Spring容器启动
一.ServletContext对象获取Demo Servlet容器在启动时会加载Web应用,并为每个Web应用创建唯一的ServletContext对象. 可以把ServletContext看作一个 ...
- spring容器启动的三种方式
一.在Web项目中,启动Spring容器的方式有三种,ContextLoaderListener.ContextLoadServlet.ContextLoaderPlugin. 1.1.监听器方式: ...
- spring容器启动过程理解
一.一切从手动启动IoC容器开始 ClassPathResource resource = new ClassPathResource("bean.xml"); DefaultLi ...
- Spring容器启动源码解析
1. 前言 最近搭建的工程都是基于SpringBoot,简化配置的感觉真爽.但有个以前的项目还是用SpringMvc写的,看到满满的配置xml文件,却有一种想去深入了解的冲动.折腾了好几天,决心去写这 ...
- Spring容器启动源码分析
1. 前言 最近搭建的工程都是基于SpringBoot,简化配置的感觉真爽.但有个以前的项目还是用SpringMvc写的,看到满满的配置xml文件,却有一种想去深入了解的冲动.折腾了好几天,决心去写这 ...
随机推荐
- 【原创】移动端获取用户公网ip,获取用户ip
有时候某些api需要获取用户的ip , 特此分享一下获取用户公网ip的方法 纯js <script src="http://pv.sohu.com/cityjson?ie=utf-8& ...
- cf 833 A 数论
A. The Meaningless Game time limit per test 1 second memory limit per test 256 megabytes input stand ...
- OLT配置说明
MA5680T>enable 进入特权模式 MA5680T#config 进入配置模式 MA5680T(config)#display current-configuration sim ...
- UML类图几种关系
(转自:http://www.open-open.com/lib/view/open1328059700311.html) 在UML类图中,常见的有以下几种关系: 泛化(Generalization) ...
- java程序设计基础篇 复习笔记 第二单元
1原始数据类型(primitive data type) == 基本类型 (fundamental type)byte short int long float double char boolean ...
- 添加git 忽略文件
在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交. Git 忽略文件提交的方法 有三种方法可以实现忽略Gi ...
- python中time()时间的相关问题
Python中time模块详解(转) 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time ...
- 在关于原生js获取getAttribute如果是src的一点注意事项
最近抽空把seajs看完了 他们在fix代码的时候,写明在某浏览器下的情况和官方文档出处,这样有据可查.太赞了 顺便把我想要这段摘出来 可以直接dom.src,但是在ie6-7中是不支持的,并且在ge ...
- Flask项目中的蓝图简介及使用方式
Blueprint概念 简单来说,Blueprint 是一个存储操作方法的容器,这些操作在这个Blueprint 被注册到一个应用之后就可以被调用,Flask 可以通过Blueprint来组织URL以 ...
- 剑指offer--46.字符流中第一个不重复的字符
双端队列 -------------------------------------------------------- 时间限制:1秒 空间限制:32768K 热度指数:113070 本题知识点: ...