1. 程式人生 > >Spring IOC(2)----如何註冊bean定義

Spring IOC(2)----如何註冊bean定義

前面說到IOC容器在重新整理之前的一些初始化工作,現在來看看在refresh()方法中,是怎樣來載入註冊我們自己的bean定義的。

refresh()方法中有很多功能,從註釋中就可以看出來

 

我們本次重點關注invokeBeanFactoryPostProcessors(beanFactory);這個方法

該方法裡面可以獲取到前面初始化好的註解讀取器AnnotatedBeanDefinitionReader,前面在AnnotationConfigUtils#registerAnnotationConfigProcessors方法中是往beanFactory裡面註冊了配置類的處理器的ConfigurationClassPostProcessor,這個時候就可以拿出來使用了,建立一個配置類解析器物件ConfigurationClassParser,來具體處理幾種形式bean注入(@propertySource,@ComponentScan,@Import,@ImportResource,@bean),,最終再由ConfigurationClassBeanDefinitionReader將配置的bean定義載入到容器中ConfigurationClassBeanDefinitionReader#loadBeanDefinitionsForConfigurationClass

流程圖如下:

&n