此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Integration 6.5.1spring-doc.cadn.net.cn

消息会话回调

从 Spring Integration 4.2 版开始,您可以使用MessageSessionCallback<F, T>使用<int-sftp:outbound-gateway/> (SftpOutboundGateway) 对Session<SftpClient.DirEntry>使用requestMessage上下文。 您可以将其用于任何非标准或低级 SFTP作(或多个),例如允许从集成流定义访问,或功能接口 (lambda) 实现注入。 以下示例使用 lambda:spring-doc.cadn.net.cn

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

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

使用 XML 配置时,<int-sftp:outbound-gateway/>提供一个session-callback属性,该属性允许您指定MessageSessionCallbackbean 名称。spring-doc.cadn.net.cn

session-callbackcommandexpression属性。 使用 Java 配置时,SftpOutboundGatewayclass 提供不同的构造函数。