Feign【@FeignClient】
首先看一下@FeignClient注解的源码:
package org.springframework.cloud.openfeign; import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.core.annotation.AliasFor; @Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface FeignClient {
@AliasFor("name")
String value() default ""; /** @deprecated */
@Deprecated
String serviceId() default ""; @AliasFor("value")
String name() default ""; String qualifier() default ""; String url() default ""; boolean decode404() default false; Class<?>[] configuration() default {}; Class<?> fallback() default void.class; Class<?> fallbackFactory() default void.class; String path() default ""; boolean primary() default true;
}
可以看出@FeignClient注解被@Target(ElementType.TYPE)修饰,表示@FeignClient注解的作用目标在接口上。
针对其常用属性做如下归纳:
- String name():指定FeignClient的名称,如果项目使用了ribbon做负载均衡,name属性会作为微服务的名称,用于服务发现。
- String url():url一般用于调试,可以指定FeignClient注解调用的地址。
- boolean decode404():当发生404错误时,如果该字段为true,会调用decoder进行解码,否则抛出FeignException异常,默认是false。
- Class<?> configuration():Feign的配置类,可以自定义Feign的Encoder、Decoder、LogLevel、Contract。
- Class<?> fallback():定义容错的处理类,当远程调用超时或者远程接口失败,会调用对应接口的容错逻辑,fallback指定的类必须实现@FeignClient标记的接口。
- Class<?> fallbackFactory():工厂类,用于生成fallback类实例,通过这个属性我们可以实现每个接口通用的容错逻辑,减少重复的代码。
- String path():定义当前FeignClient的统一前缀路径。
feign支持对特定名称的feign细粒化配置,也支持针对整个项目做全局配置。
Feign【@FeignClient】的更多相关文章
- Feign【入门】
feign简介: feign是一种声明式,模板化的HTTP客户端,spring cloud对feign进行了增强,使其支持SpringMvc的相关注解,并整合了ribbon做负载均衡.在spring ...
- 【Eureka】服务发现调用
[Eureka]服务发现调用 转载:https://www.cnblogs.com/yangchongxing/p/10779832.html 1.使用 Netfix Feign 客户端调用服务 首先 ...
- 【springcloud】springcloud Greenwich SR4版本笔记
springcloud Greenwich SR4版本笔记 本文只记录实际版本,配置,pom,代码以及注意事项.别的在其他springcloud 的F版本中已有详述. 示例代码地址:https://g ...
- 【六】Hystrix Dashboard
除了隔离依赖服务的调用以外,Hystrix还提供了准实时的调用监控(Hystrix Dashboard) , Hystrix会持续地记录所有通过 Hystrix发起的请求的执行信息,并以统计报表和图形 ...
- 【Other】最近在研究的, Java/Springboot/RPC/JPA等
我的Springboot框架,欢迎关注: https://github.com/junneyang/common-web-starter Dubbo-大波-服务化框架 dubbo_百度搜索 Dubbo ...
- 【原创】SpringBoot & SpringCloud 快速入门学习笔记(完整示例)
[原创]SpringBoot & SpringCloud 快速入门学习笔记(完整示例) 1月前在系统的学习SpringBoot和SpringCloud,同时整理了快速入门示例,方便能针对每个知 ...
- Nepxion Discovery【探索】微服务企业级解决方案
Nepxion Discovery[探索]微服务企业级解决方案] Nepxion Discovery[探索]使用指南,基于Spring Cloud Greenwich版.Finchley版和Hoxto ...
- 【consul】使用学习
[consul]使用学习 转载:https://www.cnblogs.com/yangchongxing/p/10653791.html 1.下载 consul https://www.consul ...
- 如何正确使用 Spring Cloud?【中】
3. Spring 集成了哪些常用组件? 从 2004 年发布 1.0 版本开始,Spring 目前已经演进至 5.x 版本了,为不同时期的应用开发提供了强有力的支撑.现在我们正面对微服务.DevOp ...
随机推荐
- python传参数是传值还是传址?
传址 不可变类型(数值型.字符串.元组): 因变量不能修改,所以运算不会影响到变量自身 可变类型(列表字典):函数体运算可能会更改传入的参数变量.
- [vsftpd] ubuntu14.04 ansible剧本安装vsftpd流程及报错排查
需求: 在ubuntu14.04机器上搭建ftp服务,ftp账号通过winscp软件登录后,仅可增删改/data/wwwroot目录. 一.安装步骤 1.apt 安装vsftpd apt-get in ...
- codeforces#1249F. Maximum Weight Subset(树上dp)
题目链接: http://codeforces.com/contest/1249/problem/F 题意: 一棵树的每个节点有个权值,选择一个节点集,使得任意点对的距离大于$k$ 求最大节点集权值, ...
- JSP 9大内置对象以及作用
1.HttpServletRequest的 request对象作用:代表请求对象,用来接收客户端通过http协议连接传输到服务器端的数据. 2.HttpServletResponse的response ...
- Tkinter 之Canvas画布
一.参数说明 参数 作用 background(bg) 指定 Canvas 的背景颜色 borderwidth(bd) 指定 Canvas 的边框宽度 closeenough 指定一个距离,当鼠标与画 ...
- TopCoder SRM 582 Div 1 - Problem 1000 SemiPerfectPower
首先我们可以把答案差分,那么我们只需要求出\(1\)~\(x\)范围内的满足条件的数即可. 题目要求的应该是这个东西的个数: \(l \leq a*b^c \leq r(1 \le a < b) ...
- lucene反向索引——倒排表无论是文档号及词频,还是位置信息,都是以跳跃表的结构存在的
转自:http://www.cnblogs.com/forfuture1978/archive/2010/02/02/1661436.html 4.2. 反向信息 反向信息是索引文件的核心,也即反向索 ...
- linux 关机/重启命令总结
linux下常用的关机命令有:shutdown.halt.poweroff.init:重启命令有:reboot.下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法. 首先来看一下 ...
- Linux单独打包工具-Ubuntu
Electron-Packager 使用electron-packager打包:https://github.com/electron/electron-packagerelectron-packag ...
- 黑马vue---33、vue-resource 实现 get, post, jsonp请求
黑马vue---33.vue-resource 实现 get, post, jsonp请求 一.总结 一句话总结: vue-resource使用非常非常非常简单:this.$http.get('htt ...