springframework——@Configuration注解详解

首先看一下@Configuration注解的定义,如下:

可以看到,@Configuration注解带有@Component元注解,因此可以被组件扫描器识别并生成对应的BeanDefinition实例的。

但是问题在于,@Configuration注解与@Component注解相比,有什么特别之处呢?

关键就在于org.springframework.context.annotation.ConfigurationClassPostProcessor这个类,类图如下:

springframework——@Configuration注解详解_第1张图片

从图中可以看出,这个类实现了BeanFactoryPostProcessor接口,是一个容器的后置处理器,因此在AbstractApplicationContext.refresh()应用上下文刷新的时候可以被调用,并且修改容器。调用时机如下图:

springframework——@Configuration注解详解_第2张图片


那么问题来了:ConfigurationClassPostProcessor都对容器作了哪些修改呢?



你可能感兴趣的:(springframework——@Configuration注解详解)