springboot feign调用

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

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

烦,所以推荐feign调用。

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

所以单独说说它。

①加入依赖

        <!--open feign-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <!--open feign okhttp-->
        <dependency>
            <groupId>io.github.openfeign</groupId>
            <artifactId>feign-okhttp</artifactId>
        </dependency>

②创建feign接口

@FeignClient(url = "${identity.serverAddress}", name = "identity-feign")
public interface IIdentityFeignClient {

    @PostMapping(value = "${identity.loginMethod}", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
    @ResponseBody
    IdentityTokenDTO identityToken(@RequestBody Map<String, ?> tokenVO);
}

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

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

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

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

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

的包名”)

④日志打印

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

logging:
  level:
    org.qdsm.base.common.IIdentityFeignClient: debug
feign:
  client:
    config:
      default:
        loggerLevel: full

A服务调用B服务  步骤:
 

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值