zoukankan      html  css  js  c++  java
  • springcloud之Feign实现声明式REST调用

    Feign是Netflix开发的声明式、模板化的HTTP客户端,可帮助我们更加便捷、优雅的调用HTTP api。spring cloud对Feign进行了增强,使Feign支持了Spring MVC注解,并整合了Ribbon和Eureka,从而让Feign的使用更加方便:只需要创建一个接口,并在接口上添加一些注解,代码就完成了,Feign支持多种注解,子嗲的或者JAX-RS注解等。

    添加maven依赖:

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

    修改application.yml文件:

    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8761/eureka/
    server:
      port: 8765
    spring:
      application:
        name: service-feign

    在程序的启动类ServiceFeignApplication ,加上@EnableFeignClients注解开启Feign的功能:

    @SpringBootApplication
    @EnableEurekaClient
    @EnableDiscoveryClient
    @EnableFeignClients
    public class ServiceFeignApplication {
    
        public static void main(String[] args) {
            SpringApplication.run( ServiceFeignApplication.class, args );
        }
    }

    创建一个Feign接口,并添加@FeignClient注解:

    @FeignClient(value = "service-hi")
    public interface SchedualServiceHi {
        @RequestMapping(value = "/hi",method = RequestMethod.GET)
        String sayHiFromClientOne(@RequestParam(value = "name") String name);
    }

    @FeignClient注解中的“service-hi”是需要调用的服务名称,会自动使用Ribbon负载均衡,由于使用了Eureka,Ribbon会把服务名解析成Eureka Server服务注册表中的服务,如果不想使用Eureka,可以使用service.ribbon.listofServers属性配置服务器列表。

    然后在web controller层直接传入参数并调用SchedualServiceHi.sayHiFromClientOne(name)即可。

  • 相关阅读:
    Search Insert Position
    Sum Root to Leaf Numbers
    String to Integer (atoi)
    Populating Next Right Pointers in Each Node
    Triangle
    Pascal's Triangle II
    Longest Consecutive Sequence
    属性透明度
    ul的列表符号在IE6下显示不全
    table的属性border-collapse 设置边框是否合并
  • 原文地址:https://www.cnblogs.com/loveBolin/p/9903255.html
Copyright © 2011-2022 走看看