微服务 通过EnableFeignClients调用其他服务的api
今天在项目上遇到一个问题,通过当前service服务要调用到其他service服务的api接口时,可通过EnableFeignClients调用其他服务的api,大概的步骤如下:
1、在springboot的main处加上注解@EnableFeignClients
1 @EnableDiscoveryClient 2 @SpringBootApplication 3 @EnableFeignClients 4 public class MyServiceApplication { 5 6 public static void main(String[] args){ 7 SpringApplication.run(MyServiceApplication.class, args); 8 } 9 10 }
2、在service层上实现接口,这里注意value可以用serviceId代替,但是最好用value来指定要调用的服务。
fallback是当程序错误的时候来回调的方法
方法中要用@PathVariable要注解参数
1 @FeignClient(value = "other-service", fallback = ExampleFeignClientFallback.class) 2 public interface ExampleFeignClient { 3 @RequestMapping(value = "/v1/exampleId/{id}",method = RequestMethod.GET) 4 Long queryById(@PathVariable(name="id") Long id); 5 }
3、编写程序错误时的回调类,实现接口,在错误时回调
1 @Service 2 public class ExampleFeignClientFallback implements ExampleFeignClient { 3 @Override 4 public Long queryById(Long id) { 5 return null; 6 } 7 }
4、调用该服务
1 //声明,自动封装 2 @Autowired 3 private ExampleFeignClient ExampleFeignClient; 4 5 6 //调用 7 Long result = ExampleFeignClient.queryById(id);
至此,完成整个步骤
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架