qq_33507618
zhang_龙飞
采纳率66.7%
2021-03-02 16:25

autoConfigrationImportSelector

已结题

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

  • 点赞
  • 收藏
  • 复制链接分享

1条回答

  • qq_43243317 穿白衬衣的少年 1月前

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

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

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

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

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

    点赞 1 评论 复制链接分享