使用MessageSessionCallback
从 Spring Integration 4.2 开始,您可以使用MessageSessionCallback<F, T>
实现与<int-ftp:outbound-gateway/>
(Java 中的FtpOutboundGateway
)一起执行对Session<FTPFile>
的任何操作,并使用requestMessage
上下文。它可用于任何非标准或低级 FTP 操作,并允许从集成流定义和函数式接口(Lambda)实现注入访问,如下例所示。
@Bean
@ServiceActivator(inputChannel = "ftpChannel")
public MessageHandler ftpOutboundGateway(SessionFactory<FTPFile> sessionFactory) {
return new FtpOutboundGateway(sessionFactory,
(session, requestMessage) -> session.list(requestMessage.getPayload()));
}
另一个例子可能是预处理或后处理正在发送或检索的文件数据。
使用 XML 配置时,<int-ftp:outbound-gateway/>
提供了一个session-callback
属性,允许您指定MessageSessionCallback
bean 的名称。
session-callback 与command 和expression 属性互斥。在使用 Java 配置时,FtpOutboundGateway 类中提供了不同的构造函数。 |