千家信息网

springboot如何实现增加@ComponentScan后本地bean无加载

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,springboot如何实现增加@ComponentScan后本地bean无加载,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所
千家信息网最后更新 2025年12月01日springboot如何实现增加@ComponentScan后本地bean无加载

springboot如何实现增加@ComponentScan后本地bean无加载,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1、前言

springboot需要加载jar包里的bean时,一般是使用注解@ComponentScan(basePackages = {"com.test.http", "com.test.client"})来实现,但@ComponentScan在使用时有些注意事项需要小心

2、背景

由于需要用到springcloud feign做RPC调用,需要注入client的api,因此我加了@ComponentScan扫描client所在的包路径,结果在启动时报错:

Description:

Parameter 0 of method indicatorServiceApi in com.client.ServiceApiConfig required a bean of type 'feign.codec.Decoder' that could not be found.

反序列类找不到可使用对象,然后我就加了个FeignConfig加载默认的feign配置

@Configuration@Import(FeignClientsConfiguration.class)     public class FeignConfig {}

再次启动依然报同一个错误!

3、排查原因

从现象来看,client.ServiceApiConfig至少是在FeignConfig之前初始化的,为何不是先初始化本地么?这个还真不是

回头看看@ComponentScan的注释:

* 

Either {@link #basePackageClasses} or {@link #basePackages} (or its alias* {@link #value}) may be specified to define specific packages to scan. If specific* packages are not defined, scanning will occur from the package of the* class that declares this annotation.

意思是如果没有定义packages,就从启动类的包路径开始。这就引含了一个意思:如果有定义,启动类的包路径并不会自动添加进去!

再来看看上面的问题,原来启动类的包路径跟api的包不一样,导致spring只扫描了api的包路径,当然就找不到FeignConfig配置啦!将自身的包路径加到@ComponentScan里即可。

PS:@ComponentScan的包顺序不受影响的哦〜〜

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

路径 意思 帮助 配置 清楚 事项 内容 再次 前言 原因 对此 对象 序列 所在 文章 新手 时报 是在 更多 注意事项 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 闲鱼数据库怎么修改 宇视服务器崩溃怎么维修 用腾讯云服务器搭建自己的网站 我的世界服务器新手房屋 加强网络安全管理宣传 守护网络安全民扫黄内容 网络安全管理条例具体内容 长沙网络安全系统公司 融媒体网络技术 胶州安卓软件开发服务公司 惠州自主可控软件开发批发价格 值得信任的软件开发公司 监控硬件的软件开发 湖南同路互联网科技有限公司 我国网络安全教育活动 java数据库时间格式 关系型数据库英文名 ps属不属于软件开发工具 长沙软件开发税务筹划如何做 新型网络安全市场报告 5g网络技术目前怎么样 青岛星霖网络技术有限公司 网络安全工程师哪个专业最好 互联网科技品质消费奖 2022永久免费的服务器 大二计算机网络技术就业方向 便捷数据库连接工具 戴尔软件开发用什么笔记本 数据库一年 广东长实网络技术有限公司
0