当你把 AppConfig 类交给 Spring 的 AnnotationConfigApplicationContext 时,Spring 首先会将它解析为一个 BeanDefinition。然而,AppConfig 作为一个特殊的配置类,它不仅仅是一个普通的 Bean,而是一个可能包含其他 @Bean 方法的类。Spring 需要对这种类进行特殊的处理,确保它内部定义的 @Bean 方法能被正确注册到容器中。
因此,Spring 会为这样的类打上一个标记,称之为“候选类”。这个标记告诉 Spring 容器,这个 BeanDefinition 不是一个简单的普通 Bean,而是一个需要进一步解析的配置类。标记后的 BeanDefinition 在后续阶段(例如 ConfigurationClassPostProcessor 阶段)会被特别处理,Spring 会扫描它的 @Bean 方法,生成更多的 BeanDefinition 并注册到容器中。