MessageSessionCallback

从 Spring Integration 4.2 版本开始,您可以将 `MessageSessionCallback<F, T>` 实现与 `` (`SftpOutboundGateway`) 一起使用,以便在 `requestMessage` 上下文中使用 `Session<SftpClient.DirEntry>` 执行任何操作。您可以将其用于任何非标准或低级别的 SFTP 操作(或多个操作),例如允许从集成流定义访问,或者函数式接口 (lambda) 实现注入。以下示例使用了 lambda

@Bean
@ServiceActivator(inputChannel = "sftpChannel")
public MessageHandler sftpOutboundGateway(SessionFactory<SftpClient.DirEntry> sessionFactory) {
    return new SftpOutboundGateway(sessionFactory,
         (session, requestMessage) -> session.list(requestMessage.getPayload()));
}

另一个示例可能是对正在发送或检索的文件数据进行预处理或后处理。

使用 XML 配置时,`` 提供了一个 `session-callback` 属性,允许您指定 `MessageSessionCallback` bean 的名称。

`session-callback` 与 `command` 和 `expression` 属性互斥。使用 Java 配置时,`SftpOutboundGateway` 类提供了不同的构造函数。