@AutoConfigurationPackage注解真正的作用

@AutoConfigurationPackage注解作用

我们知道@EnableAutoConfigurationspringboot实现自动配置的关键注解。其由@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)

构成。

这里我们讨论下@AutoConfigurationPackage的作用,作者才疏学浅,望大家多多指正。

@AutoConfigurationPackage构成

image-20230724010634982

由源码不难看出,@AutoConfigurationPackage就是通过@Import导入了AutoConfigurationPackages.Registrar。我们继续跟进去,其中new PackageImports(metadata).getPackageNames().toArray(new String[0])返回的就是springboot主类所在位置packageNames

image-20230724011039572

我们继续进入register()方法内,该方法将当前注解标识的包名packageNames存入组件中加入到容器里;也就是说@AutoConfigurationPackage就是将前文说的packageName存入bean注册到容器中。

值得注意的是,很多人说@AutoConfigurationPackage是用来扫描组件的和@ComponentScan类似,这种说法是错的,前文已经说过了@AutoConfigurationPackage只是存了主类所在位置packageName,并不具有扫描的功能。

image-20230724011432617

紧接着有引入一个问题,这个packageName有什么用?

答:这个packageName将当作第三方组件自动配置时的基包basePackage,第三方调用basePackage用于扫描basePackage包内的自身实体类加入到容器里。

举例:在MybatisAutoConfiguration中通过AutoConfigturationPackage.get()就获得到了basePackage,供后续使用。

image-20230724012727363

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值