spring-集成:如何删除文件?

spring-integration : how to delete a file?

我正在开发一个简单的 spring 集成项目,该项目选择一些文件(使用 file:inbound-channel-adapter)并基于这些文件导入一些数据进入数据库。

最后它想删除这些文件,因为我不再需要它们,到目前为止我还没有想出如何在不编码的情况下做到这一点。

file:outbound-channel-adapter 不行,因为它移动文件而不是删除它们。

我正在尝试用

解决它
<int:outbound-channel-adapter expression="headers['file_originalFile'].delete()" ... 

但我得到

Failed to convert value of type 'java.lang.String' to required type 'java.lang.Void';

你有什么办法不用编码就能解决吗?

File.delete() return 是一个布尔值,根据合同,出站通道适配器必须 return void(无输出)。

您可以使用 <service-activator/>output-channel="nullChannel" 来丢弃结果。

或者,您可以使用表达式评估对最终消费者的建议,如 retry-and-more sample 所示。