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` 類提供了不同的建構函式。