Spring第三天学习笔记

IOC容器初始化(续)

BeanDefinition的载入和解析

以DefaultListableBeanFactory为例,IOC容器如何载入
载入
Spring BeanDefinition的解析是在BeanDefinitionParseParserDelegate中完成的

BeanDefinition在IOC容器的注册

 注册是在DefaultListableBeanFactory中用HashMap来持有载入的BeanDefinition
注册过程
注册过程

IOC容器的依赖注入

 依赖注入的过程是用户第一次向IOC容器索要Bean时触发的。
  注入是调用AbstractBeanFactory中的gerBean()方法
依赖注入过程
spring创建bean的方式一是通过Java的反射功能,一是通过CGLIB。
依赖注入的发生实在BeanWrapper的setPropertyValues()

容器其他相关特性的设计与实现

ApplicationContext和Bean的初始化及销毁

初始化和关闭
IOC容器中bean的生命周期

  1、Bean实例的创建
  2、为Bean实例设置属性
  3、调用Bean的初始化方法
  4、应用可以通过IOC容器使用Bean
  5、当容器关闭时,调用Bean的销毁方法

lazy-init属性和预实例化

 DefaultListableBeanFactory这个基本容器的preInstantiateSingletons方法中完成

FactoryBean的实现

 类似于抽象工厂模式

BeanPostProcessor的实现

调用过程
IOC容器调用

IOC触发对postProcessBeforeInitialization的调用

autowiring(自动依赖装配)的实现

 使用反射自动查找属性的类型或者名字,基于属性的类型或者名字自动匹配IOC容器的Bean。

Bean的依赖检查

 在bean定义中设置dependency-check属性来指定依赖检查模式即可;有none、simple、object、all四种模式;默认为none。

Bean对IOC容器的感知

aware接口

IOC容器分析小结

 1、BeanDefinition的定位
 2、容器的初始化;初始化入口是refresh()函数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值