Spring中bean的加载过程

1.获取配置文件资源:
通过 ResourceLoader 来完成资源文件位置的定位,DefaultResourceLoader 是默认的实现, 同时上下文本身就给出了 ResourceLoader 的实现,可以从类路径、文件系统, URL 等方式 来定为资源位置。


2.对bean定义信息的解析:
容器通过 BeanDefinitionReader 来完成 bean 定义信息的解析,使 用的是 XmlBeanDefinitionReader 来解析 bean 的 xml 定义文件,实际的处理过程是委托给 BeanDefinitionParserDelegate 来完成的,从而得到 bean 的定义信息,这些信息在 Spring 中 使用 BeanDefinition 对象来表示


3.加载提取bean并注册(添加到beanDefinitionMap中):
 IoC 容器 解析得到 BeanDefinition 以后,需要把它在 IoC 容器中注册,这由 IoC 实现 BeanDefinitionRegistry 接口来实现。注册过程就是在 IoC 容器内部维护的一个 HashMap 来保存得到的 BeanDefinition 的过程。这个 HashMap 是 IoC 容器持有 bean 信息的场所, 以后对 bean 的操作都是围绕这个 HashMap 来实现的。 


4.bean的初始化:
通过DefaultListableBeanFactory的getBean()方法去初始化,实际由AbstractAutowireCapableBeanFactory的doCreateBean()去完成。
一个是创建 Bean 实例的 createBeanInstance 方法,一个是依赖注入的 populateBean 方法,还有就是回调方法 initializeBean。
// BeanPostProcessor两个方法: postProcessBeforeInitialization 和 postProcessAfterInitialization,两个方法分别在 Bean 初始化之前和初始化之后得到执行

Spring源码解析精髓帖:

http://www.importnew.com/27469.html

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值