我在Spring组件类中有一个非常简单的方法
@Service("wsOrderCreationService")
public class WsOrderCreationServiceImpl implements WsOrderCreationService {
...
public void saveLedger(SdiOrderSkuLedger orderSkuLedger) {
sdiOrderSkuLedgerService.save(orderSkuLedger);
}
我想对此方法应用重试,但我不能使用spring-retry 1.1.12,因为我的核心Spring版本是3.0,而spring-retry的较低版本不允许使用XML配置。我们在此应用程序中成功使用Spring Integration并重试,因此我正在考虑将此方法转换为SI工作流程。这种转换的最佳方法是什么?
答案 0 :(得分:1)
我猜你可以在RequestHandlerRetryAdvice
<request-handler-advice-chain>
中使用<service-activator>
。
从另一方面,您可以为某些<gateway>
构建类似service-interface
的内容,并在您的某些服务中将该接口用作集成前端。
因此,您需要的是<gateway>
,它会向<service-activator>
发送带有RequestHandlerRetryAdvice
的消息,以获取需要重试逻辑的某种服务方法。
这就是如何回答你的特定问题。
另一方面,Spring Retry框架不是为XML配置而设计的,因为它对于常规<bean>
定义来说足够简单。您应该通过标准的Spring AOP Framework配置RetryOperationsInterceptor
(及其依赖项)。
从那里你不需要引入Spring Integration层只是为了简单地重试一个服务。