SpringCloud使用记录
1. 使用Feign Client时,启动项目报错,找不到FallbackFactory,eg:
No fallbackFactory instance of type class com.jichu.chezhan.api.factory.RemoteDeviceCategoryFallbackFactory found for feign client remoteDeviceCategoryService
分析:
这个错误信息表明在尝试创建 Feign 客户端时,找不到类型为 com.jichu.chezhan.api.factory.RemoteDeviceCategoryFallbackFactory 的回退工厂实例。Feign 客户端通常用于 简化 HTTP 客户端的开发,在微服务架构中非常常见。当调用远程服务失败时,可以通过配置一个回退机制来处理这些失败情况。
解决:
① 确保已正确配置回退工厂:
确认你的应用中确实存在 RemoteDeviceCategoryFallbackFactory 类,并且该类实现了正确的接口或抽象类。此外,确认该类已经被 Spring 容器正确识别和管理。
② 检查 @FeignClient 注解:
在定义 Feign 客户端的接口上,确保使用了正确的 @FeignClient 注解,并且指定了 fallbackFactory 属性指向你定义的回退工厂类。
③ 检查依赖项: 确保所有必要的依赖项都已添加到项目中,并且版本兼容。特别是与 Spring Cloud、OpenFeign 和 Sentinel 相关的依赖。
④ 检查 Spring Boot 应用启动类: 确认你的主类上使用了 @SpringBootApplication 注解,并且没有遗漏任何需要的注解,如 @EnableFeignClients。
以上方法都尝试过后发现还是报错,可以尝试:
在启动类上添加ComponentScans注解,启动项目时去扫描com.api路径下的组件,就可以找到了:
@ComponentScans(value = {@ComponentScan("com.api")})
问题:
添加@ComponentScans后可以正常启动后,但是调用接口是发现找不到了,因为上面CompnnentScans里面只设置了调用远程接口模块的扫描包路径,还需要把自己项目里的需要扫描的包路径加上,eg:
@ComponentScans(value = {@ComponentScan("com.jichu.chezhan.api"), @ComponentScan("com.ks")})
再次调用接口就能调用通了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2022-09-02 将本地代码项目上传到码云gitee
2021-09-02 Windows cmd命令:进入某一硬盘下的某一文件夹