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