zoukankan      html  css  js  c++  java
  • 第51周三

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



  • 相关阅读:
    Vmware中“重新安装vmware-tools”按钮置灰如何解决
    如何实现Sublime Text3快速生成html代码
    Windows窗体编程你也行
    .NET基础技术总结
    C#考试题第一波
    C#认证题4(使用标准Windons窗体控件)
    通讯录数据库
    C#认证试题(3)
    c#认证题(2)
    c#认证试题
  • 原文地址:https://www.cnblogs.com/doit8791/p/4170306.html
Copyright © 2011-2022 走看看