reslience4j-spring-bot-2注释(@Retry,@CircuitBreaker..)被完全忽略



我花了一整天的时间试图找出为什么这不起作用,所以我认为如果我分享这个问题和答案可能会很有用

Resilience4j库提供了一个来自SpringBoot2的优雅的基于注释的解决方案。您所需要做的只是用提供的注释之一(如@CircuitBreaker@Retry@RateLimiter@Bulkhead@Thread(对方法(或类(进行注释,然后自动添加适当的弹性模式。

我向Maven pom.xml添加了预期的依赖项:

<dependency>
<groupId>io.github.resilience4j</groupId>
<artifactId>resilience4j-spring-boot2</artifactId>
<version>${resilience4j.version}</version>
</dependency>

现在编译器很高兴,所以我可以添加注释:

...
import org.springframework.stereotype.Service;
import io.github.resilience4j.retry.annotation.Retry;
...
@Service
public class MyService {
...
@Retry(name = "get-response")
public MyResponse getResponse(MyRequest request) {
...
}
}

程序编译、运行,但注释被完全忽略

根据弹性4j-spring-bot2文档:

模块期望在运行时已经提供spring-boot-starter-actuatorspring-boot-starter-aop

因此,整个技巧是将以及缺失的依赖项添加到Mavenpom.xml:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>

相关内容

  • 没有找到相关文章

最新更新