ConfigurationClassPostProcessor 注解解析流程
- Configuration是对哪些注解进行解析的?
1)@Component
2)@PropertySource
3)@ComponentScan、@ComponentScans
4)@import
5)@importResource
6)@Bean
- ConfigurationClassPostProcessor是怎样被调用的?
1)我们先来看BeanFactoryPostProcessor 的执行,扫描所有的BeanDefinitionRegistryPostProcessor类型的BeanDefinition,查找到一个名为org.springframework.context.annotation.internalConfigurationAnnotationProcessor 的 BeanDefinition
但是这个名字对应的BeanDefinition到底是那个呢?
在下面的代码我们可以看到,在创建AnnotationConfigApplicationContext时候,构造方法中new了一个 AnnotatedBeanDefiniitonReader对象,里面调用了AnnotationConfigUtils方法,往BeanFactory中注册了一系列的内置BeanFactoryPostProcessor和BeanPostProcessor。
org.springframework.context.annotation.internalConfigurationAnnotationProcessor对应的类就是ConfigurationCla