MessageSessionCallback

Spring Integration バージョン 4.2 以降、<int-sftp:outbound-gateway/> (SftpOutboundGateway)で MessageSessionCallback<F, T> 実装を使用して、requestMessage コンテキストで Session<SftpClient.DirEntry> の操作を実行できます。統合フロー定義や関数インターフェース(ラムダ)実装インジェクションからのアクセスを許可するなど、非標準または低レベルの SFTP 操作(または複数)に使用できます。次の例では、ラムダを使用しています。

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

別の例は、送信または取得されるファイルデータの前処理または後処理です。

XML 構成を使用する場合、<int-sftp:outbound-gateway/> は session-callback 属性を提供し、MessageSessionCallback Bean 名を指定できます。

session-callback は、command および expression 属性と相互に排他的です。Java で構成する場合、SftpOutboundGateway クラスはさまざまなコンストラクターを提供します。