码迷,mamicode.com
首页 > 其他好文 > 详细

第51周三

时间:2014-12-17 20:40:08      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:des   style   http   ar   io   color   os   使用   sp   

今天看了一个方案同事反馈的文档并批注,本计划基本完成编码,因为同事请假耽误要延迟到明天进行。下午在使用一个service实例时出现问题,可能是spring bean加载顺序问题,网上搜索spring bean加载顺序如下:
Spring装配Bean的过程   
1. 实例化;  
2. 设置属性值;  
3. 如果实现了BeanNameAware接口,调用setBeanName设置Bean的ID或者Name;  
4. 如果实现BeanFactoryAware接口,调用setBeanFactory 设置BeanFactory;  
5. 如果实现ApplicationContextAware,调用setApplicationContext设置ApplicationContext  
6. 调用BeanPostProcessor的预先初始化方法;  
7. 调用InitializingBean的afterPropertiesSet()方法;  
8. 调用定制init-method方法;  
9. 调用BeanPostProcessor的后初始化方法;  


Spring容器关闭过程   
1. 调用DisposableBean的destroy();  
2. 调用定制的destroy-method方法;

多个Bean的先后顺序

  • 优先加载BeanPostProcessor的实现Bean
  • 按Bean文件和Bean的定义顺序装载(即使加载多个spring文件时存在id覆盖)
  • “设置属性值”(第2步)时,遇到ref,则在“实例化”(第1步)之后先加载ref的id对应的bean
  • AbstractFactoryBean的子类,在第6步之后,会调用createInstance方法,之后会调用getObjectType方法
  • BeanFactoryUtils类也会改变Bean的加载顺序
     
 



第51周三

标签:des   style   http   ar   io   color   os   使用   sp   

原文地址:http://www.cnblogs.com/doit8791/p/4170306.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!