Spring集成-文件:inbound-channel-adapter - remove original file

标签 spring spring-integration

我有一个 file:inbound-channel-adapter,它轮询目录中的文件,然后通过 SFTP 将其发送到服务器。上传后(效果很好),需要删除原始文件;上传后如何删除原始文件? 在 file:outbound-channel-adapter 中,我可以设置一个属性来自动删除文件。

<file:inbound-channel-adapter 
    id="incomingFiles"      
    channel="myFiles"       
    directory="file:/tmp/kots">
    <int:poller id="poller" fixed-delay="1000"/>
</file:inbound-channel-adapter>

<int:channel id="myFiles"/>

....

<sftp:outbound-channel-adapter 
    id="sftpOutboundAdapter"
    channel="myFiles"
    charset="UTF-8"     
    remote-directory="/tmp/testing"     
    session-factory="sftpSessionFactory"/>

最佳答案

Transaction Synchronization适合您:

<file:inbound-channel-adapter 
    id="incomingFiles"      
    channel="myFiles"       
    directory="file:/tmp/kots">
    <int:poller id="poller" fixed-delay="1000">
         <int:transactional transaction-manager="transactionManager" synchronization-factory="syncFactory" />
    </int:poller>
</file:inbound-channel-adapter>


<int:transaction-synchronization-factory id="syncFactory">
    <int:after-commit expression="payload.delete()" channel="nullChannel"/>
</int:transaction-synchronization-factory>

其中 transactionManager 可能是 org.springframework.integration.transaction.PseudoTransactionManager开箱即用。

关于Spring集成-文件:inbound-channel-adapter - remove original file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23613204/

相关文章:

Java - Spring AOP - 使用之前的建议停止执行方法?

java - 分享一个 Spring MVC 项目

java - 如何处理 Spring 集成流的事务(Java DSL)

java - Spring Integration - 控制自动启动

java - Http 响应内容类型为 json。 "Invalid mime type"错误

java - Spring 安全: Add custom message for authentication failure ( "Bad Credentials" to "Invalid Credentials")

java - Json 未在 spring 集成中转换为对象

spring - 实现 Spring Integration 日志记录 channel 适配器来监控所有应用程序

spring-integration - 使用可选请求参数的 Http 入站网关

java - maven模块,将persistence.xml与Spring连接