前言
@Configuration 注解是 Spring 3.0 版本引入的新特性(目前版本 6.0.11),它用于将一个类标记为配置类,通过配置类可以定义和组装 Spring Bean。
一般来说注解都会有相应的解析器,@Configuration 注解靠 ConfigurationClassParser 来解析,时机是在 BeanFactory 的后处理阶段(ConfigurationClassPostProcessor),大致流程如下:
Spring @Configuration 注解解析原理
从入口开始,Spring 启动应用时会创建 AnnotationConfigApplicationContext (注解配置应用上下文)实例,下图:
初始化 AnnotationConfigApplicationContext 实例时会注册 ConfigurationClassPostProcessor,ConfigurationClassPostProcessor 实现了 BeanFactoryPostProcessor 方法,所以在 Spring 应用上下文启动时 BeanFactory 后处理时触发解析流程: