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调用即可
posted on 2018-03-15 14:36 White_programmer 阅读(310) 评论(0) 编辑 收藏 举报