Spring学习笔记

Bean的生命周期

在这里插入图片描述
1.容器启动阶段

  • 加载配置
  • 分析配置文件(通过BeanDefinitionReader)
  • 装配到BeanDefinition
  • BeanDefinition注册到BeanDefinitionRegister
  • BeanFactoryPostProcess(替换占位符,修改bean信息)

2.实例化阶段

  • 通过反射获取BeanDefinition对象的信息
  • 通过BeanWrapper将对象进行包裹并进行返回(动态代理)
  • 调用Aware接口相关的方法(BeanNameAware,BeanClassLoaderAware,BeanFactoryAware)
  • 调用BeanPostProcessor的前置方法
  • 调用initmethod方法:invokeInitmethod(),判断是否实现了initializingBean接口,如果有,调用afterPropertiesSet方法,没有就不调用
  • 调用BeanPostProcessor的后置处理方法:Spring的AOP就是在此处实现的
  • 获取到完成的对象,可以通过getBean的方式来进行对象的获取
  • 销毁流程(Bean的销毁是在容器关闭的时候):
    1.判断是否实现了DispoableBean接口
    2.调用destoryMethod方法

BeanFactory和FactoryBean的区别

相同点:都是用来创建Bean的

不同点:BeanFactory是Spring创建对象的方法,必须遵循严格的生命周期流程,很复杂,如果想要简单的自定义某个对象的创建,同时又想交给Spring来管理,那么就需要实现FactoryBean接口了。
isSingleton():是否为单例对象
getObjectType():获取返回对象的类型
getObject():自定义创建对象的过程(new,反射,动态代理)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值