spring bean的生命周期

150 阅读1分钟

流程图

spring bean的生命周期.png

生命周期理解:

1、调用bean的构造方法创建bean(在启动容器的时候就已经创建了)

2、通过反射调用setter方法进行属性的依赖注入

3、如果Bean实现了BeanNameAware接口,Spring将调用setBeanName()方法,来设置Bean的name(相当于是xml文件中,bean标签后的id)

4、如果Bean实现lBeanFactoryAware接口,Spring将调用setBeanFactory()把beanfactory设置给Bean

5、如果存在BeanPostProcessor,Spring将调用它们的postProcessBeforInitialization(预初始化)方法,在Bean初始化前对其进行处理

6、如果Bean实现了InitializingBean接口,Spring将调用它的afterProPesrtiesSet方法。然后调用xml定义的init-method方法,两个方法作用类似,都是在初始化bean的时候执行

7、如果存在BeanPostProcessor,Spring将调用它们的postProcessAfterInitialization(后初始化方法),在Bean初始化后对其进行处理

8、Bean初始化到此算是完成,完成后Bean供应使用,此处分两种情况:

8.1、如果Bean为单例的话,那么容器会返回Bean给用户,并存入到缓存池中。如果Bean实现了DisposableBean接口,Spring将调用它destroy方法,然后调用在xml中定义的destroy-method方法。着两个方法作用类似,都是在Bean实例销毁前执行

8.2、如果Bean是多例的话容器将Bean返回给用户,剩下的生命周期由用户来控制