springboot扫描引入jar包的service等组件方式

在pom中引入对应的依赖,如果引入的三方jar包跟该项目Application所在包目录包含被依赖jar包目录,

即下面的情况:

springboot扫描引入jar包的service等组件方式_第1张图片

像上面这种包组织的话,是不需要额外加入任何配置的(前提是依赖jar包相应组件一定要有@Component等注解修饰),因为springboot项目默认扫描目录就是Application所在目录及子目录,但是这种情况仅限于单个项目安排,项目大了就不一定满足了,

这时可以通过下面的方式引入扫描路径:

springboot扫描引入jar包的service等组件方式_第2张图片

或者通过@ComponentScan注解也可以,需要注意的是不要忘了扫描自身项目,因为加入@ComponentScan等注解后相当于没有任何其他扫描目录了,只按照指定的目录扫描!!!

springboot扫描不到依赖项目的service

场景:

有一个公共项目api_datasync.要扫描的类在com.api.common包下,现在有一个项目userauth,依赖了公共项目api_datasync.,Application启动类在包com.base.userauth下,启动后找不到capi_datasync项目中的类

解决办法:

在Application启动类添加注解@ComponentScan(value=”com”)即可解决问题,或者配置扫描多个包

@ComponentScan(basePackages= {“com.base.userauth”,”com.api.common”})

添加注解后,spring将只扫描注解配置的包,不再自动扫描启动类所在包及子包下的文件

注意:springboot 默认扫描的路径,是该工程application启动类所在包以及所有子包下的所有文件。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的