微服务----Feign(基本配置)

RestTemplate方式调用存在的问题

先来看我们以前利用RestTemplate发起远程调用的代码:

String url = "http://userservice/user" + order.getUserId();
User user = restTemplate.getForObject(url, User.class);

存在下面的问题:
代码可读性差,编程体验不统一
参数复杂URL难以维护

Feign的介绍

Feign是一个声名式的http客户端,官网地址:https://github.com/OpenFeign/feign
其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。
使用Feign的步骤如下:
1、引入依赖:
在这里插入图片描述
2、在order-service的启动类添加注解开启Feign的功能:
微服务----Feign(基本配置)_第1张图片
3、编写Feign客户端:
在这里插入图片描述
主要是基于SpringMVC的注解来声明远程调用的信息,比如:
服务名称:userservice
请求方式:GET
请求路径:/user/{id}
请求参数:Long id
返回值类型:User

代码效果:

微服务----Feign(基本配置)_第2张图片

总结

Feign的使用步骤:
①、引入依赖
②、添加@EnableFeignClients注解
③、编写FeignClient接口
④、使用FeignClient中定义的方法代替RestTemplate

你可能感兴趣的:(微服务,java,架构)