Spring创建Bean过程分析

容器启动阶段:
1.配置元信息(创建对象所需要的必要信息)
-xml文件 properties文件 注解 硬编码
2.BeanDefinationReader加载配置文件,将其转化为内存形式的BeanDefination
XmlBeanDefinationReader - xml
PropertiesBeanDefinitionReader - properties
3.将BeanDefination注册到BeanDefinationRegistry中。
以键值对的形式,(Bean定义的id:BeanDefination)
BeanFactoryPostProcessor可对BeanDefinationRegistry中属性进行替换和修改($占位符)

Bean实例化:
1.对象创建策略 - 采用策略模式。 反射或CGlib字节码生成创建对象
2.BeanWrapper - 对创建出来的Bean进行包装,简化上层业务逻辑
3.设置对象属性
4.先检查Aware相关接口,然后从Spring的对象池中查找相关实例。
(例如对于ApplicationContextAware接口,就去找ApplicationContext实例),
也就是说我们必须要在配置文件中或者使用注解的方式,将相关实例注册容器中,
BeanFactory才可以为我们自动注入。
5.BeanPostProcessor前置处理
要生产的Bean实例放到容器之前,允许对Bean实例进行一定程度的修改,替换等操作。
6.自定义初始化逻辑
在所有的准备工作完成之后,如果我们的Bean还有一定的初始化逻辑,那么Spring将允许
我们通过两种方式配置我们的初始化逻辑:
(1)InitializingBean (2)配置init-method参数
一般通过配置init-method方法比较灵活。
7.BeanPostProcess后置处理 - 可自定义扩展逻辑
8.自定义销毁逻辑
两种方式:(1)实现DisposableBean接口 (2)配置destory-method参数。
这里一个比较典型的应用就是配置dataSource的时候destory-method为数据库连接的close()方法。
9.使用Bean
10.调用回调销毁接口 - 自定义销毁逻辑

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值