欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-12 20:19:16
在pom中引入对应的依赖,如果引入的三方jar包跟该项目application所在包目录包含被依赖jar包目录,即下面的情况:像上面这种包组织的话,是不需要额外加入任何配置的(前提是依赖jar包相应组...

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

即下面的情况:

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

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

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

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

或者通过@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启动类所在包以及所有子包下的所有文件。

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