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

ops/2024/9/20 7:13:28/ 标签: spring boot

讲述一下遇到的问题:
在启动类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.ppmy.cn/ops/109842.html

相关文章

实操搭建battery-historian平台

1 在D盘新建一个文件夹:gosrc 2git clone https://github.com/google/battery-historian.git 3 cd 到D:\gosrc\battery-historian>go mod init gosrc初始化模块名为gosrc,你可以自定义自己的名字 4// 执行该命令,更换为国内代理地址 go en…

外观模式facade

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/facade 为程序库、 框架或其他复杂类提供一个简单的接口 把要做的事全放在一个类里给他做了,然后要用的时候直接创建这个类的实例

享元模式flyweight

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/flyweight 通过共享多个对象所共有的相同状态, 让你能在有限的内存容量中载入更多对象。享元会将不同对象的相同数据进行缓存以节省内存。 factory里面treeType共用了

前端算法(持续更新)

1、最大的钻石 1楼到n楼的每层电梯口都放着一个钻石,钻石大小不一。你从电梯1楼到n楼,每层楼电梯门都会打开一次,只能拿一次钻石,问怎样才能最大的钻石? 解题思路: 这是一个经典的动态规划问题&#xff…

策略模式的小记

策略模式 策略模式支付系统【场景再现】硬编码完成不同的支付策略使用策略模式,对比不同(1)支付策略接口(2)具体的支付策略类(3)上下文(4)客户端(5&#xff0…

高效物流管理从固乔快递批量查询助手开始

固乔快递批量查询助手:物流管理的智能化升级 固乔快递查询助手:批量追踪,物流无忧 轻松应对海量单号,固乔快递批量查询助手来帮忙 跨境电商新利器:固乔快递批量查询助手 高效物流管理从固乔快递批量查询助手开始 …

安装FTP服务器教程

一。安装vsftpd yum install vsftpd 二。修改配置文件,匿名账户具有访问,上传和创建目录的权限 vim /etc/vsftpd/vsftpd.conf (红色进行设置放开YES) local_enable:本地登陆控制,no表示禁止,ye…

大模型的第一个杀手级应用场景出来了

大家终于都意识到大模型首先改变的是软件行业自己,而软件的根基是代码生成。代码生成第一波就是AI辅助开发,这个会是大模型第一个杀手级应用。大家苦苦逼问自己的大模型杀手级应用,为什么会是辅助编程,这里说下什么: 必…

i++与++i在for循环中效果一样?

首先说结果 是的,在Visual Studio 2022中,不同于直接printf,在for循环中的i与i是同样的效果(都当作了i) 这是编译器干的好事。 如图比对 i i 原因探寻 | i i的底层原理 找到一篇博客,我目前还看不太明…

Hive 本地启动时报错 Persistence Manager has been closed

Hive 本地启动时报错 Persistence Manager has been closed 2024-09-07 17:21:45 ERROR RetryingHMSHandler:215 - Retrying HMSHandler after 2000 ms (attempt 2 of 10) with error: javax.jdo.JDOFatalUserException: Persistence Manager has been closedat org.datanucle…

大二上学期详细学习计划

本学习完成目标: 项目: 书籍:《mysql必知必会》《java核心技术卷》(暂时)加强JavaSE的学习,掌握Java核心Mysqlsql(把牛客上的那50道sql语句题写完)gitmaven完成springboot项目&…

相机不小心格式化了怎么恢复?如何快速找回珍贵照片

在数字摄影时代,相机格式化是一个令人头疼的问题。一旦不小心执行了这个操作,珍贵的照片和视频可能会瞬间消失。然而,幸运的是,通过一些专业的方法,我们仍有可能恢复这些被误删的数据。接下来,本文将介绍四…

浅谈:CDN下真实IP的暴露

免责声明:本文仅做分享! 目录 CDN简介: 国内常见CDN: 国外常见CDN: 判断CDN存在? 在线ping检测: nslookup: 寻找真实IP----> 1-DNS历史解析纪录 2-子域名查询 1.在线平台查询 2.工具爆破 3.搜索引擎 3-网站邮件头信息 4-S…

Linux虚拟机安装(CentOS9)

需要自己设置一下内存,处理器,以及镜像文件 **************************************************************** 设置完硬件后,启动虚拟机,开始配置操作系统 选择英文 这里需要改三个地方 1. 2. 3. 设置root账户的密码 全部完…

Java复习【知识改变命运】第四章

数组 1.数组的创建2.数组的赋值机制3.二维数组的创建4.数组的赋值机制5.二维数组练习 1.数组的创建 动态初始化: 数据类型[] 数组名称new 数组名称[大小];静态初始化: 数据类型[] 数组名称{元素,元素,元素...};2.数组的赋值机制…

一看就懂!什么叫做深度合成算法备案

一看就懂!什么叫做深度合成算法备案 目前市场上比较热门的AIGC应用主要集中在图像和文本的生成领域。在图像生成方面,模型层面有Stable-diffusion,产品层面有MidJourney等。在文本生成方面,国外以OpenAI的ChatGPT为代表&#xff0…

Spring 循环依赖原理及解决方案

一、什么是循环依赖 循环依赖指的是一个实例或多个实例存在相互依赖的关系(类之间循环嵌套引用)。 举例: Component public class AService {// A中注入了BAutowiredprivate BService bService; }Component public class BService {// B中也…

Postman做接口测试时一些实用的操作

Postman 之前是作为Chrome 的一个插件,现在要下载应用才能使用。 以下是postman 的界面: 各个功能区的使用如下: 快捷区: 快捷区提供常用的操作入口,包括运行收藏夹的一组测试数据,导入别人共享的收藏夹测…

Ironic服务是什么;Ironic服务中用户镜像,租户怎么使用

目录 Ironic服务是什么 一、Ironic服务简介 二、Ironic服务的使用方法 1. 部署与配置 2. 注册与管理裸金属节点 3. 部署与监控 4. 插件与集成 三、使用场景 四、总结 Ironic服务中用户镜像,租户怎么使用 用户镜像的创建与准备 租户使用用户镜像 注意事项 Ironic服…

SpringCloud之Sleuth(Micrometer)+ZipKin分布式链路追踪

(学习笔记) 1、分布式链路追踪概述 问题:在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路&#xf…