注解-FeignClient详情

网友投稿 706 2022-11-21

注解-FeignClient详情

注解-FeignClient详情

一 FeignClient注解

@FeignClient标签的常用属性如下:@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface FeignClient { @AliasFor("name") String value() default ""; @AliasFor("value") String name() default ""; /** 从源码可以得知,name是value的别名,value也是name的别名。两者的作用是一致的,name指定FeignClient的名称,如果项 目使用了Ribbon,name属性会作为微服务的名称,用于服务发现。 */value: 服务名name:指定FeignClient的名称,注意—》如果项目使用了Ribbon,name属性会作为微服务的名称,用于服务发现url: url一般用于调试,可以手动指定@FeignClient调用的地址fallback: 定义容错的处理类,当调用远程接口失败或超时时,会调用对应接口的容错逻辑,fallback指定的类必须实现@FeignClient标记的接口fallbackFactory: 工厂类,用于生成fallback类示例,通过这个属性我们可以实现每个接口通用的容错逻辑,减少重复的代码path: 定义当前FeignClient的统一前缀contextId:比如我们有个order服务,但order服务中有很多个接口,我们不想将所有的调用接口都定义在一个类中/***《接口A》*/@Component@FeignClient(name = "order", fallback = OrderFeignHystrix.class, contextId = "orderFeignA",path = "/order")public interface OrderFeignA { /** * 保存订单信息 * * @param orderInfoDTO * @return */ @PostMapping("/create") ResponseMessage createOrder(@RequestBody @Valid OrderInfoDTO orderInfoDTO);/***《接口B》*/@Component@FeignClient(name = "order", fallback = OrderFeignHystrix.class, contextId = "orderFeignB",path = "/order")public interface OrderFeignB { /** * 保存订单信息 * * @param orderInfoDTO * @return */ @PostMapping("/create") ResponseMessage createOrder(@RequestBody @Valid OrderInfoDTO orderInfoDTO);

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot配置开发和测试环境并添加启动路径方式
下一篇:31. Django 2.1.7 模板 - CSRF 跨站请求伪造
相关文章

 发表评论

暂时没有评论,来抢沙发吧~