当前位置: 首页 > news >正文

启动spring boot项目时,第三方jar包扫描不到的问题。

遇到的问题:
在启动类Application上使用@ComponentScan 这个注解来扫描第三方的包,然后就会出现报错。异常就是无法加载本地的bean,但是可以加载到第三方的bean;

了解过spring boot启动流程的都知道,Springboot启动类注解@SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentScan。其中扫描包的范围默认为启动类所在包和子包。如果我们需要扫描其他模块的包或者第三方的jar包,我们就要单独使用@ComponentScan注解扫描,或者直接在@SpringbootApplication注解中指定扫描的第三方路径。

但是,如果@SpringBootApplication和@ComponentScan注解在一个启动类中共存,那么@SpringBootApplication注解的扫描的作用将会失效,也就是说不能够扫描启动类所在包以及子包了,因为它被@ComponentScan注解中指定的包扫描覆盖了。

在这个启动类中,我们加上了@ComponentScan注解,并在这个注解上指定了一个路径,那么现在spring boot项目启动时就只会扫描com.zq.testspringboot包下的内容。不会再默认扫描启动类所在的包及其子包。

解决办法:
1、@SpringBootApplication和@ComponentScan注解在一个启动类中共存时,@ComponentScan中必须指定所有需要扫的包,不然没有指定的包就不会扫描到。这样就可以解决问题了,即可以扫描第三方jar包又可以扫描本地的路径


2、使用@ComponentScans注解,配置多个ComponentScan注解。

这种方法与之前第一种方法类似,都是在ComponentScan注解中指定所有要扫描的路径,不管是本地的还是第三方引入的。

3、配置包扫描建议单独建立一个配置类加上@Configuration注解和@ComponentScan注解配置要扫描的包,并放到启动类所在包的子包下。

总之,只要不在同一个类中同时使用@SpringBootApplication注解和@ComponentScan注解就可以保证写的扫描包路径不被覆盖掉


http://www.mrgr.cn/news/20441.html

相关文章:

  • matter的Commissioning(入网过程)整体流程、加密方式、通信信息结构
  • 智能指针,QT,C++语言的关键字总结
  • 东南欧跨境电商:eMAG全力支持中国卖家!
  • 周星驰《大话大话西游》开机,“悟空热”席卷短剧市场?
  • 汇编伪指令 GNU 风格(24)
  • 专业软件测试服务机构分享:小程序测试步骤和作用
  • Java项目: 基于SpringBoot+mysql网上点餐系统分前后台(含源码+数据库+答辩PPT+毕业论文)
  • echarts地图绘制并实现下钻功能
  • 打卡第五十七天:prim与kruskal算法
  • exports, module.exports和this 同时设置,最终导出的是什么
  • 新手c语言讲解及题目分享(十七)--运算符与表达式专项练习
  • 【2024】JAVA实现响应式编程Reactor具体API文档使用说明
  • B-smooth 数
  • 判断两个yaw角度之差是否超过了90度
  • knime用三种方法提取列中需要的数据实战
  • Android12——Launcher3文件夹布局修改调整
  • MyPrint打印设计器(十)svg篇-多边形
  • PDF到CAD转换:四大实用工具指南!
  • bun一个现代JavaScript运行时
  • 2024 年高教社杯全国大学生数学建模竞赛题目-A 题 “板凳龙” 闹元宵