Spring源码学习(1) — 总体概述
来源:互联网 发布:人工智能生活应用实例 编辑:程序博客网 时间:2024/05/22 03:02
前言:本文采用Jdk版本为 jdk1.8.0_111;Spring版本为4.3.10.RELEASE;
本文及后续实例分析的切入点皆是ClassPathXmlApplicationContext类。
一、Spring核心架构思路
Spring核心组件:core、beans、context , 三个组件构成了Spring的最基础最核心的骨骼架构。
1. core提供很多Spring中常用的工具,以及最主要的两个接口:Resource和ResourceLoader;
2. beans提供了Spring中核心的几个接口:BeanFactory、BeanDefinition和BeanDefinitionReader;
3. context则提供了对外服务的标准接口ApplicationContext。
Spring创建IOC容器所经历的过程大概是:
1. 定位:在这个过程中,Spring是交给core的ResourceLoader来完成的,通过创建context时传入的参数路径,进行资源的定位,将所有资源的详细路径获取到,并转化为一个个具体的Resource,Resource本身的意义就是对具体资源的描述,其内部存储着资源文件的相关属性。实际上ClassPathXmlApplication中所用到的Resource是FileSystemResource,所用到的ResourceLoader是PathMatchingResourcePatternResolver;
2. 载入:是循环执行Resource文件内容的载入,将Resource文件的内容读入到容器中,读入的过程是委托beans中的DocumentLoader来进行读入的,读完后将内容存储到Document中,该过程是在BeanDefinitionReader中进行的;
3. 解析:将上一环节的Document实例中的内容解析成bean的过程,委托BeanDefinitionDocumentReader来进行的,将Document中的Element转为BeanDefinition,该过程是在BeanDefinitionReader中完成的;
4. 注册:将上一环节解析出来的BeanDefinition注册到容器中,bean最终是存储在HasMap中的,HashMap存放的地方是在DefaultListableBeanFactory中。
暂时理解的不是很到位,该系列后面研究好了再写
阅读全文
0 0
- Spring源码学习(1) — 总体概述
- Spring(1)总体概述
- Struts2(1)——总体概述
- Hibernate(1)——总体概述
- IBatis(1)——总体概述
- SpringMVC(1)——总体概述
- Spring StrutsMVC 总体概述
- Android View系统源码分析(一)——概述&触摸事件总体处理流程
- Spring学习1-概述
- Spring(1) 总体概要
- spring学习笔记-总体简介
- 基于hadoop搜索引擎实践——总体概述(一)
- 基于hadoop搜索引擎实践——总体概述(一)
- FLV学习(三)FlvParser源码阅读(1)总体流程
- RTMP学习(六)rtmpdump源码阅读(1)总体流程
- FLV学习(三)FlvParser源码阅读(1)总体流程
- 开源中国源码学习(四)——主界面总体认识
- Spring IOC源码详解之总体结构
- hibernate映射关系
- ContentProvider 内容提供者
- 字符编码方式
- EditText下划线颜色修改
- 09下软考错题集锦
- Spring源码学习(1) — 总体概述
- C#_获取汉字拼音
- CCF-CSP 通信网络 JAVA 201709-4 100分
- 实时监控MySQL信息的脚本
- 深度详解根轨迹的8大规则
- 重要且紧急的事,紧急但不重要的事,重要但不紧急的事,既不紧急又不重要的事
- nova create
- 编程中踩的坑——持续更新
- HTTPS(Hypertext Transfer Protocol Secure)安全超文本传输协议