如何以编程方式创建 Spring FtpOutboundChannelAdapter?

How to programmatically create a Spring FtpOutboundChannelAdapter?

我有一个 spring 引导应用程序,我正在尝试坚持使用仅 Java 配置。不要问我这种方法的优缺点。我只是不想将配置拆分为 Java 和 XML。我正在使用 Spring 集成并尝试通过 FTP 发送文件。在 XML 世界中它看起来像

<int:channel id="pickupChannel"/>

<bean id="ftpSessionFactory"
   class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory"> ... />

<int-ftp:outbound-channel-adapter id="ftpOutputChannel"
        channel="pickupChannel" 
        session-factory="ftpSessionFactory" ...  />

我可以毫不费力地创建 DefaultFtpSessionFactory,但是 我找不到 class 来实例化 FtpOutboundChannelAdapter。该适配器 class 似乎不存在。 我能找到的最接近的是 FtpOutboundChannelAdapterParser。但这是在寻找一些 XML 来解析。在这里实例化的底层 class 是什么?我错过了什么吗?似乎 Spring 正在寻找一个 XML 定义的 bean。 spring-boot 是否还没有为此 Spring 集成 bean 准备好?

感谢任何帮助。 安德鲁

参见。从 4.0 版开始,任何 MessageHandler 都可以使用 @ServiceActivator.

配置

在这种情况下,处理程序是 FileTransferringMessageHandler 并且需要配置适当的 FtpRemoteFileTemplate

需要会话工厂。

pickupChannel 将是 DirectChannel.

编辑:

您还应该看看 Java DSL which has first class support for FTP. Take a look at the reference docs

具体见this test case