博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Bean 的加载顺序
阅读量:7138 次
发布时间:2019-06-28

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

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

 

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

你可能感兴趣的文章
Android 迭代器 Iteraor迭代器以及foreach的使用
查看>>
java类载入器——ClassLoader
查看>>
图论08—次短路的距离及路径
查看>>
jQuery源码研究——解决命名冲突
查看>>
主成分分析(PCA)原理详解(转载)
查看>>
(转)基于MVC4+EasyUI的Web开发框架形成之旅--总体介绍
查看>>
Hadoop之——HBASE结合MapReduce批量导入数据
查看>>
微信公众平台开发(111) 现金红包、裂变红包、企业付款
查看>>
ZooKeeper安装部署
查看>>
dropout
查看>>
大数据开发 | MapReduce介绍
查看>>
phpt5支付宝登陆支付接口解析
查看>>
父类构造方法中调用虚方法
查看>>
理解extern
查看>>
setSystemUiVisibility() 与 getSystemUiVisibility() 显示隐藏状态栏
查看>>
mongoDB - 安装
查看>>
xp安装maven
查看>>
(转)sscanf函数的用法
查看>>
30个高质量的免费jquery滑块PSD文件
查看>>
hdu1686(kmp)
查看>>