对于最新的稳定版本,请使用 Spring Integration 6.4.0spring-doc.cn

MessageSessionCallback 回调

从 Spring 集成版本 4.2 开始,你可以使用带有 () 的实现来对 with context 执行任何操作。 您可以将其用于任何非标准或低级 SFTP 操作(或多个),例如允许从集成流定义或功能接口 (lambda) 实施注入进行访问。 以下示例使用 lambda:MessageSessionCallback<F, T><int-sftp:outbound-gateway/>SftpOutboundGatewaySession<SftpClient.DirEntry>requestMessagespring-doc.cn

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

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

使用 XML 配置时,会提供一个允许您指定 Bean 名称的属性。<int-sftp:outbound-gateway/>session-callbackMessageSessionCallbackspring-doc.cn

这与 和 属性互斥。 使用 Java 进行配置时,该类提供不同的构造函数。session-callbackcommandexpressionSftpOutboundGateway