Spring bean的生命周期
粗略分为五步:
第一步:实例化bean(调用无参数构造方法)
第二步:给Bean属性赋值(调用set方法)
第三步:初始化Bean(会调用Bean的init方法,init方法需要自己写自己配)
第四步:使用bean
第五步:销毁bean(会调用Bean的destory方法,注意,这个destory方法需要自己写,自己配)
需要配置init-method,destroy-method
生命周期七步:在初始化Bean之前加了一个执行Bean后处理器的before方法,在初始化Bean之后加了一个执行Bean后处理器的after方法
编写以及配置Bean处理器
Bean生命周期十步
第一个需要检查Bean是否实现了Aware的相关接口,并设置相关依赖
第二个需要检查Bean是否实现了InitializingBean的接口,并调用接口方法
第三个需要检查Bean是否实现了DisposableBean的接口,并调用接口方法
点位1检查:
点位2检查:
点位3检查:
spring容器只对singleton的Bean进行完整的生命周期管理,如果是prototype作用域的bean,spring容器只负责该Bean的初始化完毕,等客户端一旦获取到该Bean之后,spring就不再管理该对象的生命周期了,只到使用那一步
将自己new的对象交给spring管理
需要new一个DefaultListableBeanFactory对象,调用他的registerSingleton方法,
可以在此对象的getBean方法获取Bean