5.Spring Bean的生命周期
在传统的 Java 应⽤中,bean 的⽣命周期很简单,使⽤ Java 关键字 new 进⾏ Bean 的实例化,然后该 Bean 就能够使⽤了。⼀旦 Bean 不再被使⽤,则由 Java ⾃动进⾏垃圾回收。
的管理可扩展性⾮常强,下⾯展示了⼀个 Bean 的构造过程:

-
Spring 启动,查找并加载需要被 Spring 管理的 Bean,进⾏ Bean 的实例化;
-
Bean 实例化后,对 Bean 的引⼊和值注⼊到 Bean 的属性中;
-
如果 Bean 实现了 BeanNameAware 接⼝的话,Spring 将 Bean 的 Id 传递给 setBeanName() ⽅法;
-
如果 Bean 实现了 BeanFactoryAware 接⼝的话,Spring 将调⽤ setBeanFactory() ⽅法,将 BeanFactory 容器实例传⼊;
-
如果 Bean 实现了 ApplicationContextAware 接⼝的话,Spring 将调⽤ Bean 的 setApplicationContext() ⽅ 法,将 Bean 所在应⽤上下⽂引⽤传⼊进来;
-
如果 Bean 实现了 BeanPostProcessor 接⼝,Spring 就将调⽤它们的 postProcessBeforeInitialization() ⽅ 法;
-
如果 Bean 实现了 InitializingBean 接⼝,Spring 将调⽤它们的 afterPropertiesSet() ⽅法。类似地,如果 Bean 使⽤ init-method 声明了初始化⽅法,该⽅法也会被调⽤;
-
如果 Bean 实现了 BeanPostProcessor 接⼝,Spring 就将调⽤它们的 postProcessAfterInitialization() ⽅ 法;
-
此时,Bean 已经准备就绪,可以被应⽤程序使⽤了。它们将⼀直驻留在应⽤上下⽂中,直到应⽤上下⽂被销毁;
-
如果 Bean 实现了 DisposableBean 接⼝,Spring 将调⽤它的 destory() 接⼝⽅法,同样,如果 Bean 使⽤了 destory-method 声明销毁⽅法,该⽅法也会被调⽤。

浙公网安备 33010602011771号