springboot 启动之后报错:Unsatisfied dependency through field ‘bbbClient’

springboot 启动之后报错:UnsatisfiedDepencyException:Error creating bean with name ‘aaaServiceImpl’: Unsatisfied dependency through field ‘bbbClient’。

这两天一直在进行着日常 debugger 查看代码。可是发生了一个挺“灵异”的事件。那就是我看的项目某些模块突然间启动不了了!!!着实震惊,因为在上午前半段我还启动了代码,启动了服务。具体的原因,我说一下。

因为客户需求,所以我又在原来的项目上面添加功能,然后中间需要用到其他服务的 service 层。所以,秉着能抄就抄、能模仿就模仿的原则,我查看其他的(也就是原来他人所写)代码,我发现可以用到 feign 。所以,也就照着“模仿”了。然后下面就是,我在启动的时候,出现了下面的错误:

org.springframework.beans.factory.UnsatisfiedDepencyException: Error creating bean with name 'aaaController' defined in file [E:\项目名字的物理路径\controller\AaaController.class]: Unsatisfied dependency expressed through constructor parameter 0: nested exception is org.springframework.beans.factory.UnsatisfiedDepencyException:Error creating bean with name 'aaaServiceImpl': Unsatisfied dependency through field 'bbbClient';  nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.项目名.b服务.feign.bbbClient': Unexpected exception during bean creation; nested exception is java.lang.IllegalstateException: No fallback instance of type class org.项目名.b服务.feign.bbbClientFallback found for feign client 项目名-b服务at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstrucorResolver.java:779)......

解释一下啊,因为保密协议,我不确定什么可以放出,什么不可以放出,所以只要上面有涉及到的,我都用了其他来代替。

  1. aaaController:是我需要在这个 controller 来像前端返回一些请求。
  2. aaaServiceImpl:controller 到 service 的实现类。
  3. bbbClient:这就是我在 aaaController 里面需要用到 b 服务的 service 而所写

也就是,我在 a 服务里面调用 b 服务里面的某一个 service,我使用了 feign。

然后,就是这些我写完了之后,再进行 debugger 启动时,出现了上面的错误信息。

最开始,我觉得是没有启动好,或者 idea 日常的幺蛾子。所以,我就重新启动了一下。经过了一会儿,再次出现了,我想这会不会是这个项目有问题?然后我就把所有的模块都重启了一次。

又是一段漫长的等待,还是如此,然后还多了两个模块,报的也是上面同样的错误。我开始了怀疑人生。怎么又多了俩?这两个模块我也没有动代码啊?咋回事?然后我开始了网络查询。看了众多之后,看到了一篇和我一样的。他的解决方法是:在启动类上面添加了一个注释:@MapperScan(basePackages = “org.项目名.b服务.feign.bbbClient”)。然后我再次重新启动,然后可以启动了。可是这已经是中午了。对,整个上午没有干什么事情,就是一直在启动,启动…

在吃饭的时候,我问了一下带我的前辈,他说:既然之前能够启动,证明别人所写是没有问题的。你不能够私自在启动类上面添加一些注释。因为架子别人已经搭好了,你写需求还是没问题的,但是启动类,还是要小心一些。你也要想想是不是你自己写的代码有问题。

吃完午饭,我打开了电脑,神奇的一幕,我的 a 服务报错了。就是再 idea 上面有一片红色的波浪线。(此时是已经把启动类上面自己所加的注释给去了的)。然后开始找错的地方,用 idea 给的提示,发现再 pom.xml 文件里面添加了一个 b 服务的依赖。此时我不能理解。但是重启了一下,好了。至此,暂告一段。

接着,我开始照着抄了一下自己写的代码:因为这个需求逻辑相同,但是是不同的地方,不同的类(主要是 bbbClient 里面添加了新方法)。在再次启动的时候,对,我又怀疑了人生。我这次也添加了依赖啊?为什么还会出现这个问题呢?不理解,极致不理解。我自己查的也不是一个好的解决方法,我开始向我加的群里面的大佬们请教。很快,有位群友说:可以尝试一下 clean 编译一下试试。我重新试了试,至此完美解决。

造成一切的原因是:

  • 自己 a 服务里面用了 b 服务的 service ,自己没有添加依赖。这个谁都不愿,只能怨自己代码熟悉得不够多,不够熟练。
  • 嗯,只能说 idea 这幺蛾子有点多。之前是只要自己语法错误,它会给我们报出错误。但是这次没有。
  • 最后,还是只能怨自己。毕竟,要是熟悉了使用 feign 的步骤,哪会有这些问题?

以上,只算是自己的一些见解。谢谢!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/212191.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

46. 全排列

46. 全排列 原题链接:完成情况:解题思路:参考代码:_46全排列_构建数组回溯_46全排列_直接构建 错误经验吸取 原题链接: 46. 全排列 https://leetcode.cn/problems/permutations/description/ 完成情况:…

codeforces D.In Love

思路 用两个 m u l t i s e t multiset multiset 分别存 l , r l,r l,r 。你也可以写平衡树在 l l l 的 m u l t i s e t multiset multiset 里去查询是否存在比最小的 r r r 大的 l l l 。 Think Twice, Code Once #include<bits/stdc.h> #define il inline #d…

小模型学习(1)-人脸识别

【写作背景】因为最近一直在研究大模型&#xff0c;在与客户进行交流时&#xff0c;如果要将大模型的变革性能力讲清楚&#xff0c;就一定要能将AI小模型的一些原理和效果讲清楚&#xff0c;进而形成对比。当然这不是一件简单的事情&#xff0c;一方面大模型分析问题的的本质原…

Mybatis分页插件PageHelper

PageHelper是什么&#xff1f; 是MyBatis提供的分页插件&#xff0c;可以支持MySQL、Oracle等六种数据库。 集成方式如下&#xff1a; 1 引入依赖 <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper --> <dependency><groupId>co…

反射加载SDK完成统一调用

文章目录 1、需求背景2、接口抽象类具体实现类3、疑问4、存在的问题5、通过反射加载SDK并完成调用5、补充&#xff1a;关于业务网关7、补充&#xff1a;关于SDK的开发 关键点&#xff1a; 接口抽象类&#xff08;半抽象半实现&#xff09;具体实现类业务网关反射加载SDK&#…

JAVA如何调用python

以下代码想通过测试&#xff0c;必须有一个前提&#xff1a;电脑上安装了Python环境。不太习惯说废话&#xff0c;直接上代码了。 以下是用于测试的python代码&#xff08;mytest.py&#xff09;&#xff1a; # 因为用户到了参数处理&#xff0c;所以需要引用 import argpars…

Java学习手册——第五篇数据类型

数据类型&#xff1a;是数据化的基石&#xff0c;如果没有数据类型怎么表示呢&#xff1f;比如年龄可以用整数&#xff1a;18岁。如果有更好的表示方式大家可以留言哟~ 在举个例子就是姓名&#xff0c;我们需要用字符串的形式来表示。这就是数据类型的魅力&#xff0c;而又有同…

TS基础语法

前言&#xff1a; 因为在写前端的时候&#xff0c;发现很多UI组件的语法都已经开始使用TS语法&#xff0c;不学习TS根本看不到懂&#xff0c;所以简单的学一下TS语法。为了看UI组件的简单代码&#xff0c;不至于一脸懵。 一、安装node 对于windows来讲&#xff0c;node版本高…

电脑出现这些现象,说明你的固态硬盘要坏了

与传统机械硬盘&#xff08;HDD&#xff09;相比&#xff0c;固态硬盘&#xff08;SSD&#xff09;速度更快、更稳定、功耗更低。但固态硬盘并不是完美无瑕的&#xff0c;由于颗粒写入机制&#xff0c;可能会在七到十年的预期寿命之前出现故障。所以用户最好为最终故障做好准备…

网页设计中增强现实的兴起

目录 了解增强现实 增强现实的历史背景 AR 和网页设计的交叉点 AR 在网页设计中的优势 增强参与度和互动性 个性化的用户体验 竞争优势和品牌差异化 AR 在网页设计中的用例 结论 近年来&#xff0c;增强现实已成为一股变革力量&#xff0c;重塑了我们与数字领域互动的方式。它被…

【FMCW毫米波雷达设计 】 — FMCW波形

原书&#xff1a;FMCW Radar Design 1 引言 本章研究驱动FMCW雷达的主要波形:线性调频(LFM)波形。我们研究信号的行为及其性质。随后&#xff0c;本章讨论了匹配滤波理论&#xff0c;并研究了压缩这种波形的技术&#xff0c;特别是所谓的拉伸处理&#xff0c;它赋予FMCW雷达极…

DOS 批处理 (二)

DOS 批处理 1. 基础 DOS 命令1.1 基础命令1.2 文件系统操作1.3 文件夹管理1.4 文件管理1.5 网络相关1.6 系统管理1.7 IF、FOR和NETIFFORNET 1. 基础 DOS 命令 command /? 查找帮助DOS命令不区分命令字母的大小写 C:\Users\Administrator>echo 1 1 C:\Users\Administrator…

基于SSM框架的仓库管理系统

基于SSM框架的仓库管理系统 文章目录 基于SSM框架的仓库管理系统 一.引言二.系统设计三.技术架构四.功能实现五.界面展示六.源码获取 一.引言 现代商业环境中&#xff0c;仓库管理对于企业的运营效率和客户满意度至关重要。传统的手工管理方式已经无法满足日益复杂的仓储需求。…

【Spring】SpringBoot日志

SpringBoot日志 日志概述日志使用打印日志获取日志对象使用日志对象打印日志日志框架介绍门面模式SLF4J框架介绍(simple logging facade for java) 日志格式说明日志级别日志级别的分类日志级别的使用 日志配置配置日志级别日志持久化配置日志文件的路径和文件名配置日志文件的…

【刷题篇】动态规划(六)

文章目录 1、最大子数组和2、环形子数组的最大和3、乘积最大子数组4、乘积为正数的最长子数组长度5、 等差数列划分6、最长湍流子数组 1、最大子数组和 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&…

【Unity动画】Avatar Mask

创建 Avatar Mask可以设置那一部分骨骼运动和不运动 然后放在状态机里面的层中来混合 【后续完善】

深入探索 Rust 宏编程

Rust 宏提供了一种强大的方法来编写抽象和重用代码,它们在 Rust 编程中扮演着重要的角色。本文将深入探索 Rust 宏的概念、类型、使用方法以及如何实现自定义宏,以提供一个全面的 Rust 宏编程指南。 Rust 宏简介 宏是 Rust 中的一种元编程工具,它们在编译时运行,用于生成…

linux安装node

文章目录 安装node 安装node 一次手操记录 - 首先安装wget yum install -y wget - 下载nodejs最新的tar包 wget https://cdn.npm.taobao.org/dist/node/v12.12.0/node-v12.12.0-linux-x64.tar.xz - 解压包 tar -xvf node-v12.12.0-linux-x64.tar.xz - 部署bin文件 先确认你no…

30 张图解 HTTP 常见的面试题

前言 在面试过程中&#xff0c;HTTP 被提问的概率还是比较高的 我搜集了 5 大类 HTTP 面试常问的题目&#xff0c;同时这 5 大类题跟 HTTP 的发展和演变关联性是比较大的&#xff0c;通过问答 图解的形式由浅入深的方式帮助大家进一步的学习和理解 HTTP 协议。 HTTP 基本概…

第四节JavaScript 条件语句、循环语句、break与continue语句

一、JavaScript条件语句 在通常的代码中&#xff0c;我们有一些需要决定执行不同动作&#xff0c;这就可以在代码中使用条件语句来完成。 下面是我们常使用的条件语句&#xff1a; if语句&#xff1a;只有当指定条件是true时&#xff0c;执行条件内代码。if…else语句&#…