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"/>调用定制的销毁方法

posted @ 2017-05-10 17:07  青萍之末  阅读(135)  评论(0)    收藏  举报