RestTemplate和Feign的区别

文章目录

    • 1.远程调用方法(RestTemplate和Feign)
      • 1.RestTemplate简单的远程调用原型
      • 2.Feign远程调用

1.远程调用方法(RestTemplate和Feign)

RestTemplate和Feign的区别_第1张图片

1.RestTemplate简单的远程调用原型

1.注册一个RestTemplate实例到Spring容器

RestTemplate和Feign的区别_第2张图片

2.拼接转发到user-service的路径,并通过restTemplate方法发起调用,并获得user-service执行结果。

RestTemplate和Feign的区别_第3张图片

2.Feign远程调用

1.导入依赖

在order-service服务的pom文件中引入feign的依赖:

<dependency>
    <groupId>org.springframework.cloudgroupId>
    <artifactId>spring-cloud-starter-openfeignartifactId>
dependency>

2.添加注解

RestTemplate和Feign的区别_第4张图片

3.编写Feign的客户端

不写属性的话,默认表示name值,这个案例,需要url,所以写了以下两个属性:

属性name:指定FeignClient的名称,如果项目使用了Ribbon,name属性会作为微服务的名称,用于服务发现。本案例用于简单的远程调用,所有name没太大意义,只是为了不报错而已。

属性url:手动指定@FeignClient调用的地址。

然后接口方法里面,就是消费者order-service调用提供者user-service的方法。这里是基于SpringMVC实现的,使用requestMapping发送HTTP请求并获得对应的响应值。

RestTemplate和Feign的区别_第5张图片

4.在orderservice注入feign客户端,通过FeignClient发送请求,获得响应结果

RestTemplate和Feign的区别_第6张图片

RestTemplate Feign
使用简便,用于少量参数的远程调用 需要编写客户端,使用相对复杂
用与多参数的远程调用

你可能感兴趣的:(杂类,java,spring,cloud,spring)