Spring boot basePackages 通配符* 找不到Bean

Spring boot basePackages 通配符* 找不到Bean

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

文章知识点与官方知识档案匹配,可进一步学习相关知识
Java技能树首页概览 137275 人正在系统学习中

你可能感兴趣的:(spring,boot,后端,java)