[死磕 Spring ] ---苟声汇总

目录

[死磕 Spring 1/43 ] — IOC 之深入理解 Spring IoC

第一部分 资源加载

[死磕 Spring 2/43] — IOC 之 Spring 统一资源加载策略

[死磕 Spring 3/43] — IOC 之 加载 Bean

[死磕 Spring 4/43] — IOC 之 获取验证模型

[死磕 Spring 5/43] — IOC 之 注册 BeanDefinition

[死磕 Spring 6/43] — IOC 之 获取 Document 对象

[死磕 Spring 7/43] — IOC 之解析Bean:解析 import 标签

[死磕 Spring 8/43] — IOC 之解析 bean 标签:开启解析进程

[死磕 Spring 9/43] — IOC 之解析 bean 标签:BeanDefinition

[死磕 Spring 10/43] — IOC 之解析 bean 标签:meta、lookup-method、replace-method

[死磕 Spring 11/43] — IOC 之解析 bean 标签:constructor-arg、property 子元素

[死磕 Spring 12/43] — IOC 之解析 bean 标签:解析自定义标签

[死磕 Spring 13/43] — IOC 之解析自定义标签 todo

[死磕 Spring 14/43] — IOC 之注册解析的 BeanDefinition

[死磕 Spring 15/43] — IOC 之 IOC 初始化总结

第二部分 bean 加载

[死磕 Spring 16/43] — IOC 之开启 bean 的加载

[死磕 Spring 17/43] — IOC 之从单例缓存中获取单例 bean

[死磕 Spring 18/43] — IOC 之parentBeanFactory 与依赖处理

[死磕 Spring 19/43] — IOC 之分析各 scope 的 bean 创建

[死磕 Spring 20/43] — IOC 之开启 bean 的实例化进程

[死磕 Spring 21/43] — IOC 之 Factory 实例化 bean

[死磕 Spring 22/43] — IOC 之构造函数实例化 bean (doCreateBean 1/4 : createBeanInstance)

[死磕 Spring 23/43] — IOC 之 属性填充 (doCreateBean 2/4 : populateBean)

[死磕 Spring 24/43] — IOC 之循环依赖处理 (doCreateBean 3/4 : 循环处理)

[死磕 Spring 25/43] — IOC 之 bean 的初始化 (doCreateBean 4/4 : initializeBean)

[死磕 Spring26/43] — IOC 之加载 bean:总结

第三部分 bean 的初始化 (学会init-method就可以)

[死磕 Spring 27/43] — IOC 之 深入分析 Aware 接口

[死磕 Spring 28/43] — IOC 之 深入分析 BeanPostProcessor

[死磕 Spring 29/43] — IOC 之 深入分析 InitializingBean 和 init-method

第四部分 BeanFactoryPostProcessor

[死磕 Spring 30/43] — IOC 之 深入分析 BeanFactoryPostProcessor

[死磕 Spring 31/43] — IOC 之 深入分析 PropertyPlaceholderConfigurer

[死磕 Spring 32/43] — IOC 之 PropertyPlaceholderConfigurer 的应用

[死磕 Spring 33/43] — IOC 之深入分析 PropertyOverrideConfigurer

第五部分

[死磕 Spring 35/43] — IOC 之自定义类型转换器

[死磕 Spring 36/43] — IOC 之分析 BeanWrapper

[死磕 Spring 37/43] — IOC 之 bean 的实例化策略: InstantiationStrategy

[死磕 Spring 38/43] — IOC 之 BeanDefinition 注册机:BeanDefinitionRegistry

[死磕 Spring 39/43] — Spring 的环境&属性:PropertySource、Environment、Profile

[死磕 Spring 40/43] — IOC 之 分析 bean 的生命周期

[死磕 Spring 41/43] — ApplicationContext 相关接口架构分析

[死磕 Spring 42/43] — 深入分析 ApplicationContext 的 refresh()

[死磕 Spring 43/43] — 4 张图带你读懂 Spring IOC 的世界

精华图示

Spring 五大部分

在这里插入图片描述

  • Resource
  • BeanFactory
  • Beandefinition
  • BeandefinitionReader
  • ApplicationContext

Spring结构图

在这里插入图片描述

核心类1 BeanDefinitionParserDelegate

在这里插入图片描述对应 xml 中的四种对象
在这里插入图片描述

精华描述

Spring 两个阶段

Spring 实现功能分为两个阶段:容器初始化阶段 、 bean加载阶段

  • 容器初始化阶段: 首先通过某种方式加载Configuration Metadata(主要依据是Resource、 ResourceLoader 两个体系),然后容器会对加载的Configuration Metadata 进行解析分析,并将分析的信息组成BeanDefinition,并将保存注册到相应的BeanDefinitionRegistry中。至此,SpringIOC 的初始化工作就结束了。
  • 加载bean阶段: 经过容器初始化后,应用程序中定义的bean已经全部加载到系统中了,我们显示或者隐式调用getBean()时候,会触发Bean的加载阶段。在此阶段,容器首先会检查所请求的对象是否已经初始化完成,如果没有,会根据注册的bean信息实例化请求对象,并为其注册依赖,然后将其返回给请求方,至此,加载bean完成。

测试代码

    ClassPathResource resource = new ClassPathResource("bean.xml");
    DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
    XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(factory);
    reader.loadBeanDefinitions(resource);
 

doCreateBean 四个阶段

在这里插入图片描述

doCreateBean

  • 一 createBeanInstance -------- bean 被创建出来,
  • 二 populateBean --------属性注入
  • 三 循环依赖处理 -------依赖处理
  • 四 initializeBean --------初始化Bean
    • 4.1 激活Aware方法
    • 4.2 BeanPostProcessor ------ 后置处理器的应用
    • 4.3 InitializingBean、init-method 激活自定义的init方法

系列文章 21、22、23、24、25 介绍 doCreateBean 的四个步骤
[死磕 Spring 21/43] — IOC 之 Factory 实例化 bean
[死磕 Spring 22/43] — IOC 之构造函数实例化 bean (doCreateBean 1/4 : createBeanInstance)
[死磕 Spring 23/43] — IOC 之 属性填充 (doCreateBean 2/4 : populateBean)
[死磕 Spring 24/43] — IOC 之循环依赖处理 (doCreateBean 3/4 : 循环处理)
[死磕 Spring 25/43] — IOC 之 bean 的初始化 (doCreateBean 4/4 : initializeBean)

系列文章 27、28、29 介绍 doCreateBean第四步 InitializeBean 的三个子步骤
4.1 激活Aware方法 -------------各种********Aware 接口及类
4.2 BeanPostProcessor ------ 后置处理器的应用
4.3 InitializingBean、init-method 激活自定义的init方法

扩展初始化bean

而初始化 bean 对象时也是干了三件事情,进行了三个检测扩展,也就是可以对bean进行三个不同的定制化处理:我们要学习第三篇 init-method ,详见 Test07InitializingBean 及配置文件
[死磕 Spring 29/43] — IOC 之 深入分析 InitializingBean 和 init-method

BeanFactoryPostProcessor 及其子类

知道 BeanFactoryPostProcessor 作用域容器启动阶段,可以对解析好的 BeanDefinition 进行定制化处理

BeanFactoryPostProcessor 作用于 bean 完成加载之后与 bean 实例化之前,是 Spring 提供的一种强大的扩展机制,他有两个重要的子类,一个是PropertyPlaceholderConfigurer,另一个是 PropertyOverrideConfigurer

其中 PropertyPlaceholderConfigurer 允许我们通过配置 Properties 的方式来取代 bean 中定义的占位符,
而 PropertyOverrideConfigurer 呢,改变现有对象的属性值。
在这里插入图片描述

[死磕 Spring 30/43] — IOC 之 深入分析 BeanFactoryPostProcessor

[死磕 Spring 31/43] — IOC 之 深入分析 PropertyPlaceholderConfigurer

[死磕 Spring 32/43] — IOC 之 PropertyPlaceholderConfigurer 的应用

[死磕 Spring 33/43] — IOC 之深入分析 PropertyOverrideConfigurer

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值