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

这篇文章主要介绍了springboot扫描引入jar包的service等组件方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

在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启动类所在包以及所有子包下的所有文件

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

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...