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