加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

记录一次OpenFeign不能FallbackIssue

(2022-03-18 21:46:14)
分类: JAVA开发
记录一次奇诡 openFeign issue, 根本原因是 手动 @Import(FeignClientsConfiguration.class) 导致  Feign.Builder  实例类型一直错误

=== Fatal  Error:
@Import(FeignClientsConfiguration.class)
public class FeignBuilderUtils implements ApplicationContextAware {


=== Success:
//@Import(FeignClientsConfiguration.class)
public class FeignBuilderUtils implements ApplicationContextAware {


class FeignClientsConfiguration {
   ...

    @Configuration(proxyBeanMethods = false)
    @ConditionalOnClass(CircuitBreaker.class)
    @ConditionalOnProperty("feign.circuitbreaker.enabled")
    protected static class CircuitBreakerPresentFeignBuilderConfiguration {

    @Bean
    @Scope("prototype")
    @ConditionalOnMissingBean({ Feign.Builder.class, CircuitBreakerFactory.class })
    public Feign.Builder defaultFeignBuilder(Retryer retryer) {
      return Feign.builder().retryer(retryer);     <==  出错时进这里
    }

    @Bean
    @Scope("prototype")
    @ConditionalOnMissingBean
    @ConditionalOnBean(CircuitBreakerFactory.class)
    public Feign.Builder circuitBreakerFeignBuilder() {
      return FeignCircuitBreaker.builder();       <== 正常应该进这里
    }

    ...

}

OpenFeign 的自动配置 FeignAutoConfiguration 在创建 FeignContext Bean 时会 导入 FeignClientsConfiguration
 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有