bean的生命周期

1、实例化
当程序加载applicationContext.xml文件时,我们把bean(前提是scope=singleton)实例化到内存
2、调用set方法设置属性
3、若实现了bean名字关注接口(BeanNameAware),可以通过setBeanName获取id号
4、若实现bean工厂关注接口,(BeanFactoryAware),则可以获取BeanFactory
5、若实现ApplicationContextAware接口,则调用方法
1 //该方法传递ApplicationContext 2 public void setApplicationContext(ApplicationContext arg0) 3 throws BeansException { 4 // TODO Auto-generated method stub 5 System.out.println("setApplicationContext"+arg0); 6 7 }
6、若bean和一个后置处理器关联,则自动调用before方法
1 public class MyBeanPostProcessor implements BeanPostProcessor { 2 3 @Override 4 public Object postProcessAfterInitialization(Object arg0, String arg1) 5 throws BeansException { 6 // TODO Auto-generated method stub 7 System.out.println("postProcessAfterInitialization 被调用"); 8 System.out.println(arg0+"被调用时间是"+new java.util.Date()); 9 return arg0; 10 } 11 12 @Override 13 public Object postProcessBeforeInitialization(Object arg0, String arg1) 14 throws BeansException { 15 // TODO Auto-generated method stub 16 System.out.println("postProcessBeforeInitialization 被调用"); 17 System.out.println(arg0+"被调用时间是"+new java.util.Date()); 18 return arg0; 19 } 20 21 }
7、若实现InitializingBean接口,则会调用afterPropertiesSet
8、若<bean init-method="init" />则在bean定义自己的初始化方法
9、若bean和一个后置处理器关联,则会自动调用Object postProcessAfterInitialization方法
10、使用bean
11、关闭容器
12、通过实现DisposableBean接口调用方法Destory
13、可以在<bean destory-method="fun1"/>调用定制的销毁方法

浙公网安备 33010602011771号