springboot扫描引入jar包的service等组件方式
程序员文章站
2022-06-24 11:27:53
在pom中引入对应的依赖,如果引入的三方jar包跟该项目application所在包目录包含被依赖jar包目录,即下面的情况:像上面这种包组织的话,是不需要额外加入任何配置的(前提是依赖jar包相应组...
在pom中引入对应的依赖,如果引入的三方jar包跟该项目application所在包目录包含被依赖jar包目录,
即下面的情况:
像上面这种包组织的话,是不需要额外加入任何配置的(前提是依赖jar包相应组件一定要有@component等注解修饰),因为springboot项目默认扫描目录就是application所在目录及子目录,但是这种情况仅限于单个项目安排,项目大了就不一定满足了,
这时可以通过下面的方式引入扫描路径:
或者通过@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启动类所在包以及所有子包下的所有文件。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。