• 微服务 通过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);

    至此,完成整个步骤

  • 相关阅读:
    QT 5 安装 vs2017 后,出现找不到 rc.exe 问题
    git push -f
    使用druid连接池的超时回收机制排查连接泄露问题
    git 记住密码
    postgresql c library use
    jvm内存溢出分析
    Maven中使用本地JAR包
    执行Git命令时出现各种 SSL certificate problem 的解决办法
    transformer模型计算图
    jieba分词单例模式及linux权限不够情况下tmp_dir自定义
  • 原文地址:https://www.cnblogs.com/UniqueColor/p/7130782.html
Copyright © 2020-2023  润新知