当前位置:   article > 正文

springboot feign调用

springboot feign调用

feign可以调用内部服务,也可以http调用第三方请求。

feign是RestTemplate的封装。但是restTemplate需要公共方法处理入参和返回值结构转化,比较麻

烦,所以推荐feign调用

首先,这里讲下form表单 application/x-www-form-urlencoded 这种方式的调用,因为比较特殊,

所以单独说说它。

①加入依赖

  1. <!--open feign-->
  2. <dependency>
  3. <groupId>org.springframework.cloud</groupId>
  4. <artifactId>spring-cloud-starter-openfeign</artifactId>
  5. </dependency>
  6. <!--open feign okhttp-->
  7. <dependency>
  8. <groupId>io.github.openfeign</groupId>
  9. <artifactId>feign-okhttp</artifactId>
  10. </dependency>

②创建feign接口

  1. @FeignClient(url = "${identity.serverAddress}", name = "identity-feign")
  2. public interface IIdentityFeignClient {
  3. @PostMapping(value = "${identity.loginMethod}", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
  4. @ResponseBody
  5. IdentityTokenDTO identityToken(@RequestBody Map<String, ?> tokenVO);
  6. }

@FeignClient的name属性一定要写,会报错;

consumers属性的枚举类参数,一定要声明,否则不支持x-www-form-urlencoded;

方法的入参类型一定是Map<String,?>一定要是问号,否则接口不通400;

至于返回值类型,这样子是成功的,按照成功时候的属性写个类。等着探究探究

③启动类添加注解 @EnableFeignClients。注意是否扫描到@EnableFeignClients(“Feign接口所在

的包名”)

④日志打印

在配置文件中,添加如下,注意路径和类名

  1. logging:
  2. level:
  3. org.qdsm.base.common.IIdentityFeignClient: debug
  4. feign:
  5. client:
  6. config:
  7. default:
  8. loggerLevel: full

A服务调用B服务  步骤:
 

①B正常新建controller,但是建议用feignController新建做业务区分

②A新建接口类,要记得添加注解@FeignClient;还要记得在启动类添加@EnableFeignClients

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/84529
推荐阅读
相关标签
  

闽ICP备14008679号