【spring源码分析】IOC容器初始化(总结)
前言:在经过前面十二篇文章的分析,对bean的加载流程大致梳理清楚了。因为内容过多,因此需要进行一个小总结。
经过前面十二篇文章的漫长分析,终于将xml配置文件中的bean,转换成我们实际所需要的真正的bean对象。
总结
【spring源码分析】IOC容器初始化(一):主要分析了Spring是如何解析占位符以及BeanFactory的最终实现类DefaultListableBeanFactory。
【spring源码分析】IOC容器初始化(二):以loadBeanDefinitions函数为切入点,介绍了Resource体系与ResourceLoader体系,以及Spring是如何确定文件的验证模式,着重分析了Spring是如何对注释信息进行消费的。
【spring源码分析】IOC容器初始化(三):主要分析Spring是如何对bean进行解析的,为BeanDefinition的注册做准备。
【spring源码分析】IOC容器初始化(四):分析BeanDefinition注册的核心流程。
以上4篇文章,主要分析了Spring是如何从xml配置文件中加载并解析bean变成BeanDefinition对象的。注意最终BeanDefinition的落脚点为:beanDefinitionMap。bean加载的整个流程如下图:

【spring源码分析】IOC容器初始化(五):本篇文章主要对AbstractApplicationContext#refresh的剩余方法进行粗略介绍,了解其大致流程。
【spring源码分析】IOC容器初始化(六):进入bean的加载流程,主要分析如何从单例缓存中获取bean实例。
【spring源码分析】IOC容器初始化(七):继续分析了从单例缓存中获取bean实例,并且还简要分析了其他scope作用域bean的实例化流程。
【spring源码分析】IOC容器初始化(八):主要介绍AbstractAutowireCapableBeanFactory#createBean方法,关注createBeanInstance、populateBean、initializeBean函数。
【spring源码分析】IOC容器初始化(九):着重分析instantiateUsingFactoryMethod方法的执行流程,方法体较大,其核心点就是确定工厂对象、获取构造函数和构造参数,最后通过反射执行工厂方法创建bean对象。
【spring源码分析】IOC容器初始化(十):分析了AbstractAutowireCapableBeanFactory#createBean的余下流程。
【spring源码分析】IOC容器初始化(十一):主要分析了createBeanInstance方法的余下流程,主要关注populateBean和initializeBean方法。
【spring源码分析】IOC容器初始化(十二):着重分析了Spring中的循环依赖问题,Spring只解决单例模式下的循环依赖问题。
从六到十二篇主要分析了bean的初始化过程,以及Spring中是如何解决循环依赖的。
接下来计划:IOC初始化过程中查漏补缺,Spring AOP的相关源码。
by Shawn Chen,2019.04.29,下午。
【spring源码分析】IOC容器初始化(总结)的更多相关文章
- SPRING源码分析:IOC容器
在Spring中,最基本的IOC容器接口是BeanFactory - 这个接口为具体的IOC容器的实现作了最基本的功能规定 - 不管怎么着,作为IOC容器,这些接口你必须要满足应用程序的最基本要求: ...
- Spring源码解析-ioc容器的设计
Spring源码解析-ioc容器的设计 1 IoC容器系列的设计:BeanFactory和ApplicatioContext 在Spring容器中,主要分为两个主要的容器系列,一个是实现BeanFac ...
- spring源码分析---IOC(1)
我们都知道spring有2个最重要的概念,IOC(控制反转)和AOP(依赖注入).今天我就分享一下spring源码的IOC. IOC的定义:直观的来说,就是由spring来负责控制对象的生命周期和对象 ...
- spring 源码之 ioc 容器的初始化和注入简图
IoC最核心就是两个过程:IoC容器初始化和IoC依赖注入,下面通过简单的图示来表述其中的关键过程:
- Spring源码阅读-IoC容器解析
目录 Spring IoC容器 ApplicationContext设计解析 BeanFactory ListableBeanFactory HierarchicalBeanFactory Messa ...
- Spring 源码剖析IOC容器(一)概览
目录 一.容器概述 二.核心类源码解读 三.模拟容器获取Bean ======================= 一.容器概述 spring IOC控制反转,又称为DI依赖注入:大体是先初始化bean ...
- Spring源码解析-IOC容器的实现
1.IOC容器是什么? IOC(Inversion of Control)控制反转:本来是由应用程序管理的对象之间的依赖关系,现在交给了容器管理,这就叫控制反转,即交给了IOC容器,Spring的IO ...
- Spring源码解析-IOC容器的实现-ApplicationContext
上面我们已经知道了IOC的建立的基本步骤了,我们就可以用编码的方式和IOC容器进行建立过程了.其实Spring已经为我们提供了很多实现,想必上面的简单扩展,如XMLBeanFacroty等.我们一般是 ...
- Spring源码之IOC容器创建、BeanDefinition加载和注册和IOC容器依赖注入
总结 在SpringApplication#createApplicationContext()执行时创建IOC容器,默认DefaultListableBeanFactory 在AbstractApp ...
随机推荐
- spring中bean的scope属性理解
bean的scope属性有prototype,singleton,request, session几个属性 spring和struts2整合的时候,struts2的action要配置成scope=&q ...
- UIDatePicker在swift中的使用
在上一篇文章中,创建了UISegmentedControl控件并了解它的简单用法,这篇文章主要学习DatePicker的使用,将通过Swift语言创建一个简单的例子. UIDatePicker对象:是 ...
- Servlet、Filter
加载顺序是:context-param -> listener -> filter -> servlet ,而同个类型之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺 ...
- Spring Cloud构建微服务架构(二)服务消费者
Netflix Ribbon is an Inter Process Communication (IPC) cloud library. Ribbon primarily provides clie ...
- 纯CSS小三角制作
无关的知识点 ① background-clip 属性规定背景的绘制区域. 1.padding-box:从padding区域(不含padding)开始向外裁剪背景. 2.border-box:从bor ...
- underscore源码阅读
1:函数式编程初探 2:if(obj.length === +obj.length)的判断 3:JS对象属性用中括号表示的优点在于可以用变量表示属性 4:callee,caller---JS高级程序设 ...
- Android 手势锁的实现 让自己的应用更加安全吧
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/36236113 今天偶遇以github上gesturelock关于手势锁的一个例子 ...
- Python set() 函数
描述 set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集.差集.并集等. 语法 set 语法: class set([iterable]) 参数说明: iterab ...
- 新浪微博注册(elenium Python 自动化)
from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom time import sleep ...
- engine.go
package ;;;;;;;;) ;;;;;) ) ) ) ;; ;;, types.DocumentIndexData{}, true) for { runtime.Gos ...