@FeignClient注解详解

更新时间:2023-05-24 02:46:46 阅读: 评论:0

@FeignClient注解详解
Spring Cloud 是⽬前最⽕的微服务框架,Feign 作为基础组件之⼀,在 Spring Cloud 体系中发挥了重要的作⽤。
⼀、FeignClient注解
FeignClient注解被@Target(ElementType.TYPE)修饰,表⽰FeignClient注解的作⽤⽬标在接⼝上
//@FeignClient(value = "fast-maindata-rvice",contextId = "MaindataServiceClient")
@FeignClient(url ="47.100.79.142:30041",name ="MaindataServiceClient")
public interface MaindataServiceClient extends IMaindataPharmacyController {
}
声明接⼝之后,在代码中通过@Resource注⼊之后即可使⽤。@FeignClient标签的常⽤属性如下:
name:指定FeignClient的名称,如果项⽬使⽤了Ribbon,name属性会作为微服务的名称,⽤于服务发现
pman
url: url⼀般⽤于调试,可以⼿动指定@FeignClient调⽤的地址
2013雅思考试时间表decode404:当发⽣http 404错误时,如果该字段位true,会调⽤decoder进⾏解码,否则抛出FeignException
configuration: Feign配置类,可以⾃定义Feign的Encoder、Decoder、LogLevel、Contract
fallback: 定义容错的处理类,当调⽤远程接⼝失败或超时时,会调⽤对应接⼝的容错逻辑,fallback指定的类必须实现@FeignClient 标记的接⼝
fallbackFactory: ⼯⼚类,⽤于⽣成fallback类⽰例,通过这个属性我们可以实现每个接⼝通⽤的容错逻辑,减少重复的代码nippon
path: 定义当前FeignClient的统⼀前缀
@FeignClient(name ="github-client",
url ="",
如何减少青春痘
configuration = GitHubExampleConfig.class,
fallback = GitHubClient.DefaultFallback.class)
public interface GitHubClient {
aosika@RequestMapping(value ="/arch/repositories", method = RequestMethod.GET)
String archRepo(@RequestParam("q") String queryStr);
/**
* 容错处理类,当调⽤失败时,简单返回空字符串
*/
@Component
public class DefaultFallback implements GitHubClient {
fed@Override
public String archRepo(@RequestParam("q") String queryStr){
return"";
}
}
}
在使⽤fallback属性时,需要使⽤@Component注解,保证fallback类被Spring容器扫描到,GitHubExampleConfig内容如下:
@Configuration
public class GitHubExampleConfig {
@Bean
Logger.Level feignLoggerLevel(){
return Logger.Level.FULL;
}
}标记英文
images什么意思在使⽤FeignClient时,Spring会按name创建不同的ApplicationContext,通过不同的Context来隔离FeignClient的配置信息,在使⽤配置类时,不能把配置类放到Spring App Component scan的路径下,否则,配置类会对所有FeignClient⽣效.
勾芒关于调⽤⽬前有两种:
1、接⼝提供⽅在注册中⼼。
vote如果服务提供⽅已经注册到注册中⼼了,那么name或者value的值为:服务提供⽅的服务名称。必须为所有客户端指定⼀个name或者value
@FeignClient(value=“run-product”,fallback = ProductClientServiceFallBack.class)
2、单独的⼀个http接⼝,接⼝提供⽅没有注册到注册中⼼。
@FeignClient(name=“runClient11111”,url=“localhost:8001”)
此处name的值为:调⽤客户端的名称。
以上两种⽅式都能正常调⽤。name可以为注册中⼼的实例名称,加上url属性时,name的值就与注册中⼼实例名称⽆关。⾄于url属性和name属性的关系请指导的⼤佬们留⾔呀。

本文发布于:2023-05-24 02:46:46,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/120328.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:属性   服务   名称   配置
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图