zoukankan      html  css  js  c++  java
  • Spring ApplicationContextAware 相关源码

    Spring初始化入口:

    AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)

    在方法的最后一个处理:

    finishBeanFactoryInitialization(AbstractApplicationContext.java:866)时会实例化bean并且进行初始化,ApplicationContextAware定义的setApplication方法也是在初始化的时候调用。相关代码:

    创建bean实例最终会落到如下方法上:

    AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:512)

    该方法的:

     代码通过反射实例化对象。

    然后在:

     执行初始化,初始化具体逻辑,在初始化时会调用 applyBeanPostProcessorsAfterInitialization 方法,该方法会遍历注册的所有BeanPostProcessor,并把当前bean传进去做属性注入相关动作:

     其中第一个就是ApplicationContextAware的实现类。在该类中会判断当前bean是否是这种类型,如果是则把当前spring上下文通过反射ApplicationContextAware的set方法设置进去:

  • 相关阅读:
    Java编程之路相关书籍
    JAVA中的Random()函数
    在鼠标右键上加入使用notepad++编辑
    更改IE浏览器的收藏夹位置
    Java四类八种数据类型
    成为Java顶尖程序员 ,看这11本书就够了
    面向对象(多异常的声明与处理)
    面向对象(异常try-catch)
    面向对象(异常概述)
    面向对象(局部内部类和匿名内部类)
  • 原文地址:https://www.cnblogs.com/caiyao/p/14963898.html
Copyright © 2011-2022 走看看