发表于: 2017-11-11 23:35:56
1 937
今天完成的事:
1.学习Bean的生命周期
1、调用无参构造器,创建对象;
2、调用set方法,为属性 注入值;
3、若实现了BeanNameAware接口,执行接口方法获取容器中id名称;
4、若实现了BeanFactoryAware接口,执行接口方法获取BeanFactory对象;
5、若注册了Bean后处理器BeanPostProcessor,执行接口方法before;
6、若实现了InitializingBean接口,执行接口方法afterPropertiesSet()方法,Bean实例化结束;
7、执行init-method;
8、若注册了Bean后处理器BeanPostProcessor,执行接口方法after;
9、执行业务方法;
10、若实现了DisposableBean接口,执行接口destory方法,为销毁Bean准备;
11、执行destory-method方法,在销毁前执行。
定制Bean生命始末,是用init-method和destory-method属性,destory-method执行时需要关闭容器,容器ApplicationContext没有关闭的方法,需要强制类型转换
2.设值注入:调用set方法。
3.构造注入:调用构造器,构造注入时可以没有无参构造器,其他情况必须有。
4.命名空间注入:需要在配置文件上添加约束
<1>p注入:设值注入
<2>c注入:构造注入
遇到的问题:
1.对引用数据类型理解有误,导致在写设值注入时一直出问题,检查好久才发现问题
写成了 private School school;
明天计划:
学完基于xml的DI和基于注解的DI。
收获:
Bean的生命周期只是有大致印象,还不能完全掌握。
评论