zoukankan      html  css  js  c++  java
  • spring cloud学习(四) Fegin 的使用

    Feign 的使用

    什么是Feign?

    Feign : Declarative REST clients。
    Feign 是一个声明web服务客户端,这便得编写web服务客户端更容易,使用Feign 创建一个接口并对它进行注解,它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持可插拔的编码器与解码器,Spring Cloud 增加了对 Spring MVC的注解,Spring Web 默认使用了HttpMessageConverters, Spring Cloud 集成 Ribbon 和 Eureka 提供的负载均衡的HTTP客户端 Feign。(来源于Spring Cloud Netflix 官网文档)

    怎么使用Feign

    首先继续使用上次的”服务注册中心”与”服务提供者”。接下来,就是将 Fegin 整合到”服务消费者”中。

    引入依赖

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

    注入注解

    在 Spring Boot 主类加入注解@EnableFeignClients开启 Fegin 功能。

    注入接口

    创建接口,具体如下:

    @Component
    @FeignClient(value = "my-service")
    public interface ServiceClient {
    
        @RequestMapping("/service")
        String printf();
    }
    
    • 使用@Component注解向 Spring Boot 中注入该组件。
    • 使用@FeignClient("")注解来绑定该接口对应的服务
    • 通过 Spring MVC 的注解来配置服务下的具体实现。

    在Controller中调用接口

    @RestController
    public class ConsumerController {
    
        @Autowired
        private ServiceClient serviceClient;
    
        @RequestMapping("/test")
        public String test(){
            return serviceClient.printf();
        }
    }
    

    最后,启动”注册中心”、”服务提供者”、”服务消费者”等工程。访问 http://localhost:2222/test 就可以在”服务提供者”控制台查看到负载均衡的实现。

    注意事项

    注意注意注意
    当Spring Cloud版本为 Brixton.RELEASE ,会抛出异常:

    Attribute ‘value’ in annotation [org.springframework.cloud.netflix.feign.FeignClient] must be declared as an @AliasFor [serviceId], not [name]
    

    解决办法:
    将Spring Cloud版本改为 Brixton.SR5 或 Camden.RELEASE 即可。

  • 相关阅读:
    POJ 2653 Pick-up sticks [线段相交 迷之暴力]
    POJ1556 The Doors [线段相交 DP]
    POJ 3304 Segments[直线与线段相交]
    POJ2318 TOYS[叉积 二分]
    挖坑
    HDU3488 Tour [有向环覆盖 费用流]
    BZOJ 3438: 小M的作物 [最小割]
    POJ 2125 Destroying The Graph [最小割 打印方案]
    网络流算法与建模总结
    CF266D. BerDonalds [图的绝对中心]
  • 原文地址:https://www.cnblogs.com/MaxElephant/p/8109201.html
Copyright © 2011-2022 走看看