spring-boot的自动装配

一、spring-boot的自动装配

spi机制加载所有的装配类

启动spring-boot
从这里的run方法点进去一直点到下图所示的方法中

加载spring上下文
默认使用 SERVLET 通过反射实例化上下文容器的类:AnnotationConfigServletWebServerApplicationContext ,在这个类的构造方法中加入了许多跟spring实例化流程相关的postprocessor类(这些类中的某些方法会在spring实例化流程中被调用到,跟spring-boot自动装配的postprocessor类有关的实现是ConfigurationClassPostProcessor),并把这些类加入到了BeanDefinition容器中,

在spring-boot启动类上一般会加上@SpringBootApplication注解,在这个注解的@EnableAutoConfiguration注解中有@Import(AutoConfigurationImportSelector.class)
@Import注解中的类会被ConfigurationClassPostProcessor类调用到process()和selectImports()方法 这2个方法用于加载META-INF/spring.factories下适配的key对应的装配类,

在这里插入图片描述
然后所有装配类再通过各种的实现根据@condition注解判断是否要装配
在这里插入图片描述
matchIfMissing为true时表示默认配置,prefix和name,havingValue就是application中的配置
下图是spring实例化如何调用processor,然后再调用ConfigurationClassPostProcessor,然后再调用到
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值