搜索内容

有一个问题?

如果您有任何疑问,可以在下面询问或输入您要寻找的!

autoConfigrationImportSelector

技术聚客 未结 1 1315
zhang_龙飞
zhang_龙飞 2021-03-07 23:24

@EnableAutoConfiguration的autoConfigrationImportSelector是查询到了spring.factories里面对应的java config类全路径,但是在哪里反射创建实例并加载到IOC容器的?

相关标签:
1条回答
  • 2021-03-07 23:53

    大多数网上博客说到springboot自动装配原理,都说@EnableAutoConfiguration注解里面import了EnableAutoConfigurationImportSelector,EnableAutoConfigurationImportSelector从spring.factories中加载自动配置类到容器。

    但是从来没有说过EnableAutoConfigurationImportSelector什么时候执行,谁调用的!!!

    其实自动装配是基于spring的PostProcessor实现的,不过不是常见的BeanPostProcessor和BeanFactoryPostProcessor,而是BeanDefinitionRegistryPostProcessor,继承BeanFactoryPostProcessor,在BeanFactoryPostProcessor之前执行。

    BeanDefinitionRegistryPostProcessor有一个实现类——ConfigurationClassPostProcessor,由ConfigurationClassPostProcessor最终调用了AutoConfigurationImportSelector获取了beanName,在ConfigurationClassParser中解析生成bean

    后续准备写一篇博客专门介绍

    0 讨论(0)
提交回复