根据文档,为了激活断路器,我必须在属性中添加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()'会得到异常。