2016-03-08 37 views
1

我有一個Spring組件類中的一個非常簡單的方法如何將Java Spring Flow轉換爲Spring Integration Work Flow並重試?

@Service("wsOrderCreationService") 
public class WsOrderCreationServiceImpl implements WsOrderCreationService { 
... 
public void saveLedger(SdiOrderSkuLedger orderSkuLedger) { 
    sdiOrderSkuLedgerService.save(orderSkuLedger); 
} 

我想申請重新嘗試這個方法,但我不能使用彈簧重試1.1.12因爲我的核心Spring版本是3.0及以下版本spring-retry不允許XML配置。我們在此應用程序中成功使用Spring Integration進行重試,因此我正在考慮將此方法轉換爲SI工作流程。做這種轉換的最佳方式是什麼?

回答

1

讓我猜你可以在<request-handler-advice-chain>中使用RequestHandlerRetryAdvice作爲<service-activator>

從另一方面來說,您可以爲某些service-interface構建類似<gateway>的東西,並在某些服務中將該接口用作集成前端。

因此,您需要的是一個<gateway>,它將消息發送到<service-activator>RequestHandlerRetryAdvice用於需要重試邏輯的某種服務方法。

這就是如何回答你的特定問題。

從另一方面來說,Spring Retry框架並不是針對XML配置而設計的,因爲它僅適用於常規的<bean>定義就足夠簡單了。您應該通過標準的Spring AOP框架配置RetryOperationsInterceptor(及其依賴項)。

從那裏你不需要介紹Spring集成層,只是爲了簡單的重試一個服務。