弹簧云开假-激活断路器



根据文档,为了激活断路器,我必须在属性中添加feign.circuitbreaker.enabled=true

它正在工作,但我想找到一种方法来激活一个注释。

我试过像

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-circuitbreaker-resilience4j</artifactId>
</dependency>

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@EnableFeignClients
public @interface EnableFeign {
}

@Configuration
@EnableFeign
public class FeignConfiguration {
public FeignConfiguration() {
Properties properties = System.getProperties();
properties.setProperty("feign.circuitbreaker.enabled", "true");
}
}

但它不起作用。似乎属性是在EnableFeignClients初始化后设置的,我得到了一个异常

Cannot invoke "org.springframework.cloud.openfeign.CircuitBreakerNameResolver.resolveCircuitBreakerName(String, feign.Target, java.lang.reflect.Method)" because "this.circuitBreakerNameResolver" is null]

在Intellij中"热加载"后,它仍然工作,因为属性仍然存在。

就是这么做的。我也更喜欢只有一个注释,而不是构造函数在FeignConfiguration

有没有一种方法可以做到这一点,并让它工作?

您是如何创建feign的?

feigncircuit .builder()还是FeignCircuitBreaker.builder() ?

使用'FeignCircuitBreaker.builder()'会得到异常。

最新更新