关于 FeignClient 注解中的 contextId
contextId 的使用一般是调用同一个服务,但是分多个接口 比如调用同一个 member 服务可以通过 contextId 来区分开,否则就会报错 bean 冲突 12345678/** * @author 小五 */@FeignClient(contextId = "MemberAFeign", value = ServiceNameConstants.MEMBER_SERVICE, fallbackFactory = MemberFeignAFallbackFactory.class)public interface MemberAFeign { ...} 12345678/** * @author 小五 */@FeignClient(contextId = "MemberBFeign", value = ServiceNameConstants.MEMBER_SERVICE, fallbackFactory = MemberFeignBFallbackFactory.cla...
关于 FeignClient 参数 fallbackFactory 和 fallback
首先两个参数都可以作为断容器使用,在抛出 exception 时,返回默认的配置数据 其次两个参数不能同时使用 区别:fallbackFactory 可以识别到 cause,也就是说如果需要得到错误原因,可以使用 fallbackFactory,如下 fallbackFactory 的使用FeignClient 123456// remote接口标注fallbackFactory/** * @author 小五 */@FeignClient(contextId = "productFeign", value = ServiceNameConstants.PRODUCT_SERVICE, fallbackFactory = ProductFeignFallbackFactory.class) FeignClient 实现类 12345678910111213@Slf4j@Componentpublic class ProductFeignFallbackImpl implements ProductFeign { @Sette...
OpenFeign 远程调用
Feign 远程调用先来看我们以前利用 RestTemplate 发起远程调用的代码: 存在下面的问题: 代码可读性差,编程体验不统一 参数复杂 URL 难以维护 Feign 是一个声明式的 http 客户端,官方地址:https://github.com/OpenFeign/feign 其作用就是帮助我们优雅的实现 http 请求的发送,解决上面提到的问题。 Feign 替代 RestTemplateFeign 的使用步骤如下: 1)引入依赖我们在 order-service 服务的 pom 文件中引入 feign 的依赖: 1234<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency> 2)添加注解在 order-service 的启动类添加注解开启 Feign 的功能: 3)编写...
