美文网首页Java
面试官必问题:SpringBoot自动装配原理?!

面试官必问题:SpringBoot自动装配原理?!

作者: 熬夜不加班 | 来源:发表于2022-05-13 14:08 被阅读0次

SpringBoot

41.png

推荐学习:谈起SpringBoot,面试官(Java)必问题:讲述一下 SpringBoot 自动装配原理?

SpringBoot自动配置流程

42.png

BeanDefinition的注册顺序

  • 先@ComponentScan的: @Component、@Serivce、@Controller

  • @Import的: @Component、@Service、@Controller

  • @Configuration: 和该配置类里面的@Bean->该配置类里面的@Import进来的实现了ImportBeanDefinitionRegistrar接口的

  • @Import进来的@Configuration: 和该配置类里面的@Bean->该配置类里面的@Import进来的实现了ImportBeanDefinitionRegistrar接口的

  • @Import进来的实现了DeferredImportSelector接口的@Configuration: 和该配置类里面的@Bean->该配置类里面的@Import进来的实现了ImportBeanDefinitionRegistrar接口的

自动装配原理

首先会通过import导入DeferredImportSelector.

为什么要导入DeferredImportSelector呢,这是因为为了顺序的一个考虑,它的加载顺序是最后的,把它放到最后呢才能进行定制我们自己的,而不是以它的Bean优先

然后去扫描所有jar包中的spring.factories文件,把其中所有全类限定名封装成一个list,然后进行排序返回给Spring,然后Spring会将它们注册是BeanDeifnition放到BeanDefinitionMap中去,然后Spring就能管理到这些Bean了

作者:枫度柚子
原文链接:https://juejin.cn/post/7090555927459266591

相关文章

网友评论

    本文标题:面试官必问题:SpringBoot自动装配原理?!

    本文链接:https://www.haomeiwen.com/subject/axzyurtx.html