1. 程式人生 > >springboot原始碼解析-管中窺豹系列之BeanFactoryPostProcessor(十一)

springboot原始碼解析-管中窺豹系列之BeanFactoryPostProcessor(十一)

# 一、前言 - Springboot原始碼解析是一件大工程,逐行逐句的去研究程式碼,會很枯燥,也不容易堅持下去。 - 我們不追求大而全,而是試著每次去研究一個小知識點,最終聚沙成塔,這就是我們的springboot原始碼管中窺豹系列。 ![ 簡介 ](https://zhangbin1989.gitee.io/blog/picture/zb0018_springsour/springboot_source_0.png) # 二、BeanFactoryPostProcessor BeanFactoryPostProcessor是在bean初始化之前對bean的統一操作 ``` package org.springframework.beans.factory.config; import org.springframework.beans.BeansException; @FunctionalInterface public interface BeanFactoryPostProcessor { void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException; } ``` 它還有個子介面:BeanDefinitionRegistryPostProcessor ``` package org.springframework.beans.factory.support; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanFactoryPostProcessor; public interface BeanDefinitionRegistryPostProcessor extends BeanFactoryPostProcessor { void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException; } ``` BeanDefinitionRegistryPostProcessor在BeanFactoryPostProcessor之前執行 # 三、原始碼分析 從main方法入口進入到SpringApplication的run方法 ``` public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); stopWatch.start(); ConfigurableApplicationContext context = null; Co