MessageSessionCallback
从 Spring Integration 4.2 版本开始,您可以使用MessageSessionCallback<F, T>
实现与<int-sftp:outbound-gateway/>
(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 配置时,<int-sftp:outbound-gateway/>
提供了一个session-callback
属性,允许您指定MessageSessionCallback
bean 的名称。
session-callback 与command 和expression 属性互斥。使用 Java 配置时,SftpOutboundGateway 类提供不同的构造函数。 |