Spring Bean生命周期详解

站在设计者的角度考虑设计IOC容器

在这里插入图片描述

  • 加载Bean的配置(比如xml配置)
    • 比如不同类型资源的加载,解析成生成统一Bean的定义
  • 根据Bean的定义加载生成Bean的实例,并放置在Bean容器中
    • 比如Bean的依赖注入,Bean的嵌套,Bean存放(缓存)等
  • 除了基础Bean外,还有常规针对企业级业务的特别Bean
    • 比如国际化Message,事件Event等生成特殊的类结构去支撑
  • 对容器中的Bean提供统一的管理和调用
    • 比如用工厂模式管理,提供方法根据名字/类的类型等从容器中获取Bean

一、IOC初始化流程图

Class (UserService)—>实例化 —> 对象 ---->属性填充(依赖注入)-----> 初始化(实现InitializingBean) ---->AOP -->代理对象 -----> bean
在这里插入图片描述

1.1、如何将Bean从XML配置文件解析后放到IOC容器中;

背景:
SpringIOC容器它会以某种方式,加载配置文件中的 信息,将其解析为一个个的BeanDefinition.之后将BeanDefinition注册到容器之中。Spring IOC容器在实现的时候经过的过程可以使用如下图片表示
在这里插入图片描述
分为两个主要部分:
其一 :容器启动阶段
其二:bean实例化阶段。

在容器的启动阶段主要做的是一些信息收集的过程(主要依赖于工具类BeanDefinitionReader),将收集的信息组成BeanDefinition.将BeanDefinition注册到相应的BeaneanRegistry。

Bean实例化的过程在请求方通过容器的getBean方法明确请求某个对象时候触发/隐式依赖关系调用时候也会触发该动作。此阶段做的操作主要是判断当前的请求对象是否已经被实例化过了。根据情况进行注入,当该对象实现某些回调接口,也会根据回调函数接口装配它。

目标:
分析Spring如何将配置文件解析,(以XML配置文件为例)通过加载解析,生成BeanDefination 并注册到IOC容器中;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值