OpenFeign 定义后备工厂进行服务降级
OpenFeign 定义后备工厂进行服务降级可以使得远程接口调用失败时进行降级处理,而不会直接报错,影响后续代码逻辑。定义后备工厂的步骤如下:
-
远程接口处定义。
@FeignClient(value = ServiceConstants.SYSTEM, fallbackFactory = RemoteFileFallbackFactory.class) public interface RemoteFileService { /** * 使文件生效 * @param id 文件ID * @return 结果 */ @PutMapping("file/enable/{id}") BaseResult<Boolean> enable(@PathVariable("id") Long id); }
-
定义后备工厂。
@Slf4j @Component public class RemoteFileFallbackFactory implements FallbackFactory<RemoteFileService> { @Override public RemoteFileService create(Throwable cause) { log.error("远程文件服务:{}", cause.getMessage()); return new RemoteFileService() { @Override public BaseResult<Boolean> enable(Long id) { return BaseResult.fail(); } }; } }
-
自动导入后备工厂。
在
resource/META-INF/spring
下的org.springframework.boot.autoconfigure.AutoConfiguration.imports
中进行定义:
com.sevnce.base.api.service.system.factory.RemoteFileFallbackFactory
天河有尽身作涯,星海无边前是岸。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)