當前位置:編程學習大全網 - 源碼下載 - spring的後置處理器

spring的後置處理器

spring的後置處理器有兩類,bean後置處理器,bf(BeanFactory)後置處理器。bean後置處理器作用於bean的生命周期,bf的後置處理器作用於bean工廠的生命周期。

Spring是壹個bean依賴註入容器,容器是BF,它的上級對象是applicationContxt,applicationContxt在容器功能上附加了壹下新的功能。我們使用spring時,用的都是applicationConext的實現類。

我們在初始化這些applicationConext時,最終調用的都是org.springframework.context.support.AbstractApplicationContext#refresh方法用於容器的初始化。這個方法是壹個模板方法,規定了容器實例化的步驟。其中BF初始化完成後,會調用BF的後置處理器對BF進行後置處理。而後置處理器的調用是在org.springframework.context.support.AbstractApplicationContext#invokeBeanFactoryPostProcessors這個方法中進行的。

BF的後置處理器有兩種,BeanFactoryPostProcessor和BeanDefinitionRegistryPostProcessor。BF後置處理器和BD(BeanDefinition)後置處理器。BD後置處理器是BF後置處理器的子接口。下面是BF後置處理器的api截圖。

invokeBeanFactoryPostProcessors方法內,調用後置處理器的步驟如下:

在AnnotationConfigApplicationContext上下文中,會有壹個關鍵的BD後置處理器:ConfigurationClassPostProcessor。它是用來掃描所有交給spring管理的註解類的。將其解析為BD實例放到AC中去。

spring管理的是bean,所以bean的實例化是壹個重要的過程。spring是通過org.springframework.beans.factory.support.AbstractBeanFactory#getBean方法實例化並初始化Bean。實例化Bean的過程中,可以通過bean的後置處理器插手Bean的實例化過程。

Bean的實例化過程如下:

在這個過程中,spring內設了8個bean的後置處理器調用點,用來進行擴展。

Bean後置處理器有五種:

Bean後置處理器的API截圖:

  • 上一篇:修改鴻蒙系統源代碼
  • 下一篇:有什麽好玩的單機遊戲?
  • copyright 2024編程學習大全網