Spring boot basePackages 通配符* 找不到Bean

本文深入探讨了SpringBoot中@ComponentScan注解下basePackages参数使用通配符*、.*及**的区别,解析了不同通配符对Bean扫描范围的影响,帮助开发者理解如何正确配置组件扫描。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring boot basePackages 通配符* 找不到Bean

今天遇到了一个关于spring boot 组件@ComponentScan 中basePackages 使用通配符* 找不到Bean的问题
在这里插入图片描述
目录结构中BussinessPerson与Dog类中都有标注有@Component注解,结果扫描不到。
然后删除通配符,结果运行成功。
之后修改成了**通配符,结果也运行成功了。
之后打了个断点,查看了这三种情况时,classPath的路径。结果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结果分析:
basePackages.*:这种情况路径后缀会变成*/**/*.class,组件只会扫描路径包中的子包里面的类,而当前包中的Bean不会被扫描到。
basePackages.**: 这种情况路径后缀会变成**/**/*.class,组件会扫描当前包以及子包中的Bean.
basePackages:这种情况路径后缀会变成/**/*.class,组件会扫描当前包以及子包中的Bean.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值