在那个网站做ppt可以赚钱,小程序代注册,做苗木网站哪家做得好,wordpress 如何发布文章Spring Cloud Feign Spring Cloud Feign是一套基于Netflix Feign实现的声明式服务调用客户端。它使得编写Web服务客户端变得更加简单。我们只需要通过创建接口并用注解来配置它既可完成对Web服务接口的绑定。它具备可插拔的注解支持#xff0c;包括Feign注解、JAX-RS注解。它也…Spring Cloud Feign Spring Cloud Feign是一套基于Netflix Feign实现的声明式服务调用客户端。它使得编写Web服务客户端变得更加简单。我们只需要通过创建接口并用注解来配置它既可完成对Web服务接口的绑定。它具备可插拔的注解支持包括Feign注解、JAX-RS注解。它也支持可插拔的编码器和解码器。Spring Cloud Feign还扩展了对Spring MVC注解的支持同时还整合了Ribbon来提供均衡负载的HTTP客户端实现。 添加依赖 修改 spring-cloud-consul-consumer 的 pom 文件添加 feign 依赖。 pom.xml dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency 修改启动器 修改启动器类添加 EnableFeignClients 注解开启扫描Spring Cloud Feign客户端的功能 ConsuleConsumerApplication.java package com.louis.spring.cloud.consul.consumer;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;EnableFeignClients
SpringBootApplication
public class ConsuleConsumerApplication {public static void main(String[] args) {SpringApplication.run(ConsuleConsumerApplication.class, args);}BeanLoadBalancedpublic RestTemplate restTemplate() {return new RestTemplate();}
} 添加Feign接口 添加 FeignHelloService 接口 在类头添加注解 FeignClient(service-producer) service-producer是要调用的服务名。 添加跟调用目标方法一样的方法声明只需要方法声明不需要具体实现注意跟目标方法定义保持一致。 FeignHelloService.java package com.louis.spring.cloud.consul.consumer.service;import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;FeignClient(service-producer)
public interface FeignHelloService {RequestMapping(/hello)public String hello();
} 添加控制器 添加 FeignHelloController 控制器注入 FeignHelloService就可以像使用本地方法一样进行调用了。 FeignHelloController.java package com.louis.spring.cloud.consul.consumer.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import com.louis.spring.cloud.consul.consumer.service.FeignHelloService;RestController
public class FeignHelloController {Autowiredprivate FeignHelloService feignHelloService;RequestMapping(/feign/call)public String call() {// 像调用本地服务一样return feignHelloService.hello();}
} 测试效果 启动成功之后访问 http://localhost:8521/feign/call发现调用成功且 hello consul 和 hello consul two 结果随机出现。 这是因为 Feign 是基于 Ribbon 实现负载均衡的而我们在上一节中配置了 Ribbon 的负载策略为随机策略。 源码下载 码云https://gitee.com/liuge1988/spring-cloud-demo.git 作者朝雨忆轻尘出处https://www.cnblogs.com/xifengxiaoma/ 版权所有欢迎转载转载请注明原文作者及出处。转载于:https://www.cnblogs.com/xifengxiaoma/p/9806291.html