首先我们不要在学习Spring的开始产生畏难情绪。Spring没有臆想的那么高深,相反,它帮我们再项目开发中制定项目框架,简化项目开发。它的主要功能是将项目开发中繁琐的过程流程化,模式化,使用户仅在固定文件中增加特定标签并实现特定逻辑层的代码就能完成项目开发。下面我们来分析web项目启动时bean的初始化过程。
我们遵循类的依赖,引用关系来理清spring在这一过程中的架构和细节实现。java web项目入口在web.xml,Spring在此配置入口servlet完成bean的加载。DispatcherServlet 作为前置控制器是web服务器的入口。
<servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet>
我们知道load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法)。进入DispatcherServlet寻找init方法,在其父类HttpServletBean中找到。
DispatcherServlet的继承关系如下图
init方法细节代码如下
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26