抽抽了 2021-03-02 16:25 采纳率: 66.7%
浏览 24
已结题

autoConfigrationImportSelector

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

  • 写回答

1条回答 默认 最新

  • 穿白衬衣的少年 2021-03-03 09:43
    关注

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

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

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

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

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

    评论

报告相同问题?

悬赏问题

  • ¥15 Stata 面板数据模型选择
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用