zoukankan      html  css  js  c++  java
  • 服务间的通信 RestTemplate和Feign

    1.RestTemplate

       Spring RestTemplate 是 Spring 提供的用于访问 Rest 服务的客户端,RestTemplate 提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率,所以很多客户端比如 Android或者第三方服务商都是使用 RestTemplate 请求 restful 服务。

      定义一个RestTemplate的Bean,设置成LoadBalanced

      

    @Configuration
    public
    class RestTemplateConfiguration { @Bean @LoadBalanced public RestTemplate restTemplate(){ return new RestTemplate(); } }

    调用时注入这个bean

    @Autowired
    private RestTemplate restTemplate;
    
    public String getProduct(string productId) {
        String response=restTemplate.getForObject("http://Product/getProduct/" + productId, String.class); //Product为应用名字
    
        return response;
    
    }

    2.Fegin

      

    Feign是一种负载均衡的HTTP客户端, 使用Feign调用API就像调用本地方法一样,从避免了 调用目标微服务时,需要不断的解析/封装json 数据的繁琐。
    Fegin是一个声明似的web服务客户端,它使得编写web服务客户端变得更加容易。使用Fegin创建一个接口并对它进行注解。它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持可插拔的编码器与解码器,Spring Cloud 增加了对 Spring MVC的注解,Spring Web 默认使用了HttpMessageConverters, Spring Cloud 集成 Ribbon 和 Eureka 提供的负载均衡的HTTP客户端 Feign。
     

    引入依赖 

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-feign</artifactId>
    </dependency>

     启动类上添加注解  @EnableFeignClients

    @EnableFeignClients(basePackages = "cn.qin.client") //扫描包

    定义接口 

    @FeignClient(name= "Product")  //应用名称
    public interface ProductClient {
    
        @GetMapping("/getProduct")
        public String getProduct(String productId);
    
    }

    在调用的地方 注入

     @Autowired
       private ProductClient client;
    
     @GetMapping(value = "getProduct")
      public String getProduct(String productId) {
            return client.getProduct(productId);
      }
  • 相关阅读:
    一個SQL排序的問題[轉]
    行數據轉換成列數據
    asp页面转化成htm静态页面
    DataGrid 中間隔色的實現
    asp.net里导出excel表方法汇总[轉]
    C#中计算两个时间的差
    asp.net面试的题目
    页面间传输中文的乱码解决方法
    NickLee 多層菜單
    Add an onclick event in the DataGrid for any Column
  • 原文地址:https://www.cnblogs.com/qin1993/p/11527415.html
Copyright © 2011-2022 走看看