【HBZ分享】spring启动时自动装配的位置

自动装配流程

  1. springboot启动时,自动装配逻辑在@SpringBootApplication这个符合注解中的@EnableAutoConfiguration
  2. 新版springboot3会扫描META-INF的spring文件夹下的org.springframework.boot,autoconfigure,AutoConfiguration.imports文件,会把这里所有写的自动装配类路径全部拉取到内存
  3. 初步排除一下不需要自动装配的类,即看下这些类上面是否存在@EnableAutoConfiguration注解,不存在该注解直接被排除,remove出map集合中
  4. 进一步判断留下的这些自动装配类是否需要加载到IOC, 此时会根据META-INF的spring-autoconfigure-metadata.properties里面的条件进行filter过滤,只会加载符合条件的自动装配类
  5. 实际上经过filter条件过滤后,大多数类都不会被加载
  6. 如果是springboot2.7之前的版本,自动装配类扫描路径是在META-INF下的spring.factories文件。

自动装配文件配置的所在位置

  1. 旧版的自动装配类配置的路径:
    在META-INF下的spring.factories文件中,以key-value的形式

  2. 新版本自动装配类的路径:
    在META-INF的spring文件夹下的org.springframework.boot,autoconfigure,AutoConfiguration.imports文件中,这个文件名和路径必须这么写,是固定的。内容是以【包名+类名】的格式,每个自动装配独立占1行,无需加什么分隔符,直接换行写第二个自动装配类即可

  3. 校验过滤哪些自动装配类的条件:
    在META-INF的spring-autoconfigure-metadata.properties中,这里面定义了所有需要自动装配的条件,只有符合的才会自动装配

新版自动装配类的写法org.springframework.boot,autoconfigure,AutoConfiguration.imports截图:
在这里插入图片描述

旧版自动装配写法spring.factories截图:
在这里插入图片描述

spring-autoconfigure-metadata.properties自动装配条件文件截图:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值