(三)springにおけるBeanFacotryPostProcessorの登録及び実行の優先順位及びBeanPostProcessorの登録優先順位
1.springの2大コールバックインタフェース org.springframework.beans.factory.config.BeanFactoryPostProcessor org.springframework.beans.factory.config.BeanPostProcessor
2.BeanFactoryPostProcessor関連インタフェースの登録+コールバック処理手順
3.BeanPostProcessor関連インタフェースBeanFacotryに登録する手順
BeanFactory
BeanFactory
2.BeanFactoryPostProcessor関連インタフェースの登録+コールバック処理手順
BeanFactoryPostProcessor org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor
BeanDefinitionRegistryPostProcessor void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry)
BeanFactory BeanDefinition 。 BeanDefinitionRegistry
:
1. AbstractApplicationContext beanFactoryPostProcessors BeanDefinitionRegistryPostProcessor
BeanDefinitionRegistryPostProcessor.postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry)
2. BeanFactory AbstractRefreshableApplicationContext BeanFactory loadBeanDefinition ( registry )
BeanDefinitionRegistryPostProcessor PriorityOrdered BeanDefinition。 getOrder()
((DefaultListableBeanFactory) beanFactory).getDependencyComparator() OrderComparator.INSTANCE。
postProcessor.postProcessBeanDefinitionRegistry(registry);
3. BeanFactory AbstractRefreshableApplicationContext BeanFactory loadBeanDefinition ( 、 registry )
BeanDefinitionRegistryPostProcessor Ordered BeanDefinition, getOrder()
((DefaultListableBeanFactory) beanFactory).getDependencyComparator() OrderComparator.INSTANCE。
postProcessor.postProcessBeanDefinitionRegistry(registry);
:PriorityOrdered Ordered , PriorityOrdered BeanDefinitionRegistryPostProcessor,
getOrder() 。
4. 3 BeanDefinitionRegistryPostProcessor BeanDefinition, BeanDefinition
(+ ) postProcessor.postProcessBeanDefinitionRegistry(registry);,
BeanDefinitionRegistryPostProcessor 。
5. BeanPostProcessor postProcessor.postProcessBeanFactory(beanFactory);
BeanDefinitionRegistryPostProcessor BeanPostProcessor , postProcessor.postProcessBeanFactory(beanFactory);
, BeanDefinitionRegistryPostProcessor postProcessBeanFactory(beanFactory)
AbstractApplicationContext BeanDefinitionRegistryPostProcessor 1、2、3、4 BeanPostProcessor
postProcessBeanFactory(beanFactory) 。
6. BeanDefinitionRegistryPostProcessor, BeanPostProcessor BeanFactoryPostProcessor
BeanPostProcessor 1、ProrityOrdered 2、Ordered 3、
3.BeanPostProcessor関連インタフェースBeanFacotryに登録する手順
1. registerBeanPostProcessors(beanFactory); BeanFactory
2.BeanPostProcessorChecker BeanFacotry BeanPostProcessor
3. PriorityOrdered BeanPostProcessor ( getOrder() )
4. Ordered BeanPostProcessor( getOrder() )
5. Order BeanPostProcessor
6. BeanPostProcessor MergedBeanDefinitionPostProcessor , BeanPostProcessor
7.ApplicationListenerDetector BeanPostProcessor
BeanFacotry