zoukankan      html  css  js  c++  java
  • SpringCloud之Feign[五]

    SpringCloud之Feign

    Feign是什么?

      Feign是简化Java HTTP客户端开发的工具它是一个jav的到http客户端绑定的开源项目。 Feign的主要目标是将Java Http 客户端变得简单。Feign的源码地址:https://github.com/OpenFeign/feign,在此我们用Feign调用下SpringCloud的服务步骤:

      1.引入Gradle依赖

     //fegin的依赖
        compile('org.springframework.cloud:spring-cloud-starter-feign')
        // https://mvnrepository.com/artifact/com.netflix.feign/feign-gson
        compile group: 'com.netflix.feign', name: 'feign-gson', version: '8.16.2'
        //注册中心调用者
        compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')
        //熔断器
        compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-hystrix'
        compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-hystrix-dashboard'
        //依赖api
        compile project(":api")

      2.在接口上继承需要调用的Api接口

    /**
     * 定义fegin调用服务 以及熔断
     * fallback表示熔断器 降级机制
     * value 表示依赖注册中心哪个服务
     */
    @Primary
    @FeignClient(value = "SERVICE",fallback = ClassesHystrix.class)
    public interface FeignInterfice extends ClassesApi {
    }
    --------------------------------------------------华丽的分割线,以下是继承的接口方法--------------------------------------------
    /**
    * 用于给service提供接口
    */
    public interface ClassesApi {
    /**
    * 查询全部
    * @return
    */
    @GetMapping("selectAll")
    List<DtoClasses> selectAll();

    /**
    * 报错降级处理
    * @return
    */
    @GetMapping("error")
    List<DtoClasses> error();
    }

      @FeignClient(value = "SERVICE",fallback = ClassesHystrix.class)       value 表示调用哪个服务在注册中心的名称 fallback 可以不写 表示熔断降级

    处理的类

    3.在启动类上加入注解

      @SpringBootApplication   此类为Springboot启动类
      @EnableDiscoveryClient(autoRegister = false)  加入此注解它会去注册中心找服务
      @EnableFeignClients  开启Feign
      @EnableCircuitBreaker  将熔断器继承进来

    @SpringBootApplication
    @EnableDiscoveryClient(autoRegister = false)
    @EnableFeignClients
    @EnableCircuitBreaker
    public class FeignApplication {
        public static void main(String[] args) {
            SpringApplication.run(FeignApplication.class,args);
        }
    }

    全部代码地址:https://github.com/zgc456/SpringCloud-Summary

    里面包含ribbon zuul feign hystrix 等等只看feign即可

    使用时应先启动Eureka(注册中心) 在启动Service(服务生产者) 然后启动Feign调用即可  

     

    
    
    
  • 相关阅读:
    java 抽象工厂模式简单实例
    java 工厂方法模式简单实例
    java 简单工厂模式实现
    tomcat管理页面上如何查看工程下的文件
    如何用Ecplise部署Web项目到tomcat中
    Servlet中操作文件
    ServletContext是什么
    model1模式变为mv模式,实现业务逻辑和画面的分离
    jdbc操作工具类
    Cookie技术随笔
  • 原文地址:https://www.cnblogs.com/zheng1/p/8573500.html
Copyright © 2011-2022 走看看