博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第51周三
阅读量:6564 次
发布时间:2019-06-24

本文共 770 字,大约阅读时间需要 2 分钟。

今天看了一个方案同事反馈的文档并批注,本计划基本完成编码,因为同事请假耽误要延迟到明天进行。下午在使用一个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的加载顺序
     
 

转载地址:http://yidjo.baihongyu.com/

你可能感兴趣的文章
Spring AOP + AspectJ annotation example
查看>>
Spring VS EJB 3 的若干认识误区(转)
查看>>
React.js初探(一)
查看>>
Neo4j CQL -(17)- NULL值
查看>>
BZOJ4554: [Tjoi2016&Heoi2016]游戏 luoguP2825 loj2057
查看>>
json_encode后的中文不编码成unicode
查看>>
修改纵断面图标注栏
查看>>
Flex创建带有空间信息的椭圆(Polygon)
查看>>
【转】参照protobuf,将json数据转换成二进制在网络中传输。
查看>>
java异常常见面试问题
查看>>
课后作业5
查看>>
Centos7.1环境下搭建BugFree
查看>>
共用y轴的双图形绘制
查看>>
第31讲 | 数字货币钱包服务
查看>>
P2073 送花
查看>>
iOS端项目注释规范附统一代码块
查看>>
c语言编程的限制,关于NOI系列赛编程语言使用限制的规定
查看>>
32个c语言关键字发音,C语言的32个关键字(读音、用法、注释)转来的,给刚接触C的...
查看>>
为煮酒新书《构建高可用Linux服务器》作序!
查看>>
Windows Azure中文博客 Windows Azure入门教学系列 (一): 创建第一个WebRole程序
查看>>