|
|
|
@ -18,9 +18,11 @@
|
|
|
|
|
package com.tencent.cloud.polaris.circuitbreaker.config;
|
|
|
|
|
|
|
|
|
|
import com.tencent.cloud.polaris.circuitbreaker.feign.PolarisCircuitBreakerNameResolver;
|
|
|
|
|
import com.tencent.cloud.polaris.circuitbreaker.feign.PolarisFeignCircuitBreaker;
|
|
|
|
|
import com.tencent.cloud.polaris.circuitbreaker.feign.PolarisFeignCircuitBreakerTargeter;
|
|
|
|
|
import feign.Feign;
|
|
|
|
|
|
|
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
|
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
|
|
|
|
import org.springframework.cloud.client.circuitbreaker.CircuitBreakerFactory;
|
|
|
|
@ -29,6 +31,7 @@ import org.springframework.cloud.openfeign.FeignClientFactoryBean;
|
|
|
|
|
import org.springframework.cloud.openfeign.Targeter;
|
|
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
|
import org.springframework.context.annotation.Scope;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* PolarisCircuitBreakerFeignClientAutoConfiguration.
|
|
|
|
@ -47,8 +50,16 @@ public class PolarisCircuitBreakerFeignClientAutoConfiguration {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Bean
|
|
|
|
|
@ConditionalOnBean(CircuitBreakerFactory.class)
|
|
|
|
|
public Targeter polarisFeignCircuitBreakerTargeter(CircuitBreakerFactory circuitBreakerFactory, CircuitBreakerNameResolver circuitBreakerNameResolver) {
|
|
|
|
|
return new PolarisFeignCircuitBreakerTargeter(circuitBreakerFactory, circuitBreakerNameResolver);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Bean
|
|
|
|
|
@Scope("prototype")
|
|
|
|
|
@ConditionalOnBean(CircuitBreakerFactory.class)
|
|
|
|
|
public Feign.Builder circuitBreakerFeignBuilder() {
|
|
|
|
|
return PolarisFeignCircuitBreaker.builder();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|