spring-cloud-openfeign
spring-cloud-openfeign copied to clipboard
set common fallback of circuitbreaker in FeignCircuitBreakerInvocationHandler
trafficstars
hello,I want to set common fallback in circuitbreaker when use feign and resiliense4j,not add @fallback in every @FeignClient. Now I rewrite FeignCircuitBreaker class and FeignCircuitBreakerInvocationHandler class.I want to set in FeignClientsConfiguration by circuitBreakerFeignBuilder()
@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();
}
}
And my way is
@Configuration
public class FeignConfig {
@Bean
@ConditionalOnBean({CircuitBreaker.class, CircuitBreakerFactory.class})
@Scope("prototype")
public Feign.Builder circuitBreakerFallbackFeignBuilder() {
return FeignCircuitBreakerFallback.builder();
}
}
but it is not work.
Could you give me some suggestion?