圖片.png
Bean生命周期管理:
Bean的完整生命周期經(jīng)歷了各種方法調(diào)用驯遇,這些方法可以劃分為以下幾類:
1、Bean類自身的方法 〉Ф痢: 這個(gè)包括了Bean本身調(diào)用的方法和通過配置文件中<bean>的init-method和destroy-method指定的方法
2、Bean級生命周期接口方法 『甓唷: 這個(gè)包括了BeanNameAware儿惫、BeanFactoryAware、InitializingBean和DiposableBean這些接口的方法 ;
60 // 這是BeanFactoryAware接口方法
61 @Override
62 public void setBeanFactory(BeanFactory arg0) throws BeansException {
63 System.out
64 .println("【BeanFactoryAware接口】調(diào)用BeanFactoryAware.setBeanFactory()");
65 this.beanFactory = arg0;
66 }
67
68 // 這是BeanNameAware接口方法
69 @Override
70 public void setBeanName(String arg0) {
71 System.out.println("【BeanNameAware接口】調(diào)用BeanNameAware.setBeanName()");
72 this.beanName = arg0;
73 }
74
75 // 這是InitializingBean接口方法
76 @Override
77 public void afterPropertiesSet() throws Exception {
78 System.out
79 .println("【InitializingBean接口】調(diào)用InitializingBean.afterPropertiesSet()");
80 }
81
82 // 這是DiposibleBean接口方法
83 @Override
84 public void destroy() throws Exception {
85 System.out.println("【DiposibleBean接口】調(diào)用DiposibleBean.destory()");
86 }
87
88 // 通過<bean>的init-method屬性指定的初始化方法
89 public void myInit() {
90 System.out.println("【init-method】調(diào)用<bean>的init-method屬性指定的初始化方法");
91 }
92
93 // 通過<bean>的destroy-method屬性指定的初始化方法
94 public void myDestory() {
95 System.out.println("【destroy-method】調(diào)用<bean>的destroy-method屬性指定的初始化方法");
96 }
3伸但、容器級生命周期接口方法 ∩銮搿: 這個(gè)包括了InstantiationAwareBeanPostProcessor 和 BeanPostProcessor 這兩個(gè)接口實(shí)現(xiàn),一般稱它們的實(shí)現(xiàn)類為“后處理器”更胖。
4铛铁、工廠后處理器接口方法 「粝浴: 這個(gè)包括了AspectJWeavingEnabler, ConfigurationClassPostProcessor, CustomAutowireConfigurer等等非常有用的工廠后處理器 接口的方法。工廠后處理器也是容器級的饵逐。在應(yīng)用上下文裝配配置文件之后立即調(diào)用括眠。