Spring容器启动源码解析
1. 前言 最近搭建的工程都是基于SpringBoot,简化配置的感觉真爽。但有个以前的项目还是用SpringMvc写的,看到满满的配置xml文件,却有一种想去深入了解的冲动。折腾了好几天,决心去写这篇关于Spring启动的博客,自己是个刚入职的小白,技术水平有限,也是硬着头皮看源码去Debug,很多不懂的地方还请谅解! 2. 概述 先给出几个让我头皮发麻的概念: web容器,Spring容器,SpringMvc容器 容器就是管理对象的地方,例如web容器就是管理servlet的地方,Spring容器就是管理Service,dao等Bean的地方,SpringMvc就是管理Controller等bean的地方(下文会做解释)。一个SpringMvc项目的启动离不开上述三个容器。所以这就是这篇文章的讲点,各个容器的启动过程解析。 3. Web容器初始化过程 官方文档是对于Web容器初始化时是这样描述的(英文不懂,已翻译成中文) 1. 部署描述文件(web.xml)中的<listener>标记的监听器会被创建和初始化 2. 对于实现了ServletContextListener的监听器,会执行它的初始化方法 contextInitialized() 3. 部署描述文件中的<filter>标记的过滤器会被创建和初始化,调用其init()方法 4.