java - 无法让 Spring Retry 工作
问题描述
在过去的几天里,我一直试图让我的 Spring 应用程序使用 Spring Retry,但到目前为止没有运气。我有一个基于 XML 的配置,所以我尝试添加
<context:annotation-config/>
<aop:aspectj-autoproxy />
<bean class="org.springframework.retry.annotation.RetryConfiguration" />
随着添加所需的依赖项并设置我正在使用的功能@Retryable
,这不起作用。
我还在我的 XML 中为新创建的配置文件添加了组件扫描,我在其中添加了@Configuration
和@EnableRetry
. 我已经用一个空的配置文件和一个在其中设置了 ReturnPolicy 的配置文件进行了尝试,尝试了使用和不使用 Aspects 而不是使用@Retryable
. 两种选择都不起作用。
我的资源和想法已经用完了,任何帮助将不胜感激。
谢谢!
解决方案
我希望您正确设置和调用它。需要从初始化的 spring 上下文中正确调用要发现的方法上的@Retryable注释。您是在这样做(从 spring 上下文中的 bean 调用的方法)还是通过其他方式调用 - 外部上下文?
或者 JUnit 是最好的朋友 - 试试SpringJunit4ClassRunner
您应该至少将您的测试类重组为:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=MyConfig.class)
public class MyServiceTest {
@Configuration
@EnableRetry
@Import(myService.class)
public static class MyConfig {}
几个参考页在这里
推荐阅读
- python-3.x - Scrapy - 以时间间隔运行
- java - TernaryOperator (? :) 用于 Java 函数。我们能离多近?
- adonis.js - 变量包含多个对象如何将其返回为多个对象的对象
- azure - Azure Active Directory/Ldap 在 web-app 中使用
- objective-c - 使用 METAL 为 6 个面绘制 6 种不同颜色的立方体
- python - 如何在图像中找到所有颜色形状打开CV python
- javascript - document.getElementById().focus() 在移动设备上不起作用
- android - 无法下载用于与我的 android 项目集成的 google-services.json 文件
- javascript - 一个图例,多个图表 Chart JS
- reactjs - 在页面加载时存储到 Redux