zoukankan      html  css  js  c++  java
  • Spring Bean 的加载顺序

    一,单一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的加载顺序
  • 相关阅读:
    7zip 自解压安装程序
    修改当前启动菜单项的HyperVisorLaunchType
    VMware 虚拟镜像转 Hyper-V(Win10/2016)
    旋转基础知识
    变换及移动基础知识
    文字及排版章末小结
    文字排版相关
    文字变形及封套扭曲
    LinQ学习笔记.
    PHP笔记-PHP中Web Service.
  • 原文地址:https://www.cnblogs.com/rinack/p/9946417.html
Copyright © 2011-2022 走看看