我有一个Spring启动应用程序,并且我正在尝试坚持使用仅限Java的配置。不要问我关于这种方法的优缺点。我只是不想在Java和XML之间拆分配置。我正在使用Spring Integration并尝试通过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而不会有太多麻烦,但是我找不到要为FtpOutboundChannelAdapter实例化的类。该适配器类似乎不存在。我能找到的最接近的是FtpOutboundChannelAdapterParser。但这是在寻找一些解析的XML。在这里实例化的底层类是什么?我错过了什么吗?看起来Spring正在寻找一个XML定义的bean。 Spring-boot还没有为这个Spring Integration bean做好准备吗?
感谢任何帮助。 安德鲁
答案 0 :(得分:0)
见this answer。自版本4.0起,任何MessageHandler
都可以使用@ServiceActivator
进行配置。
在这种情况下,处理程序是FileTransferringMessageHandler
,需要使用适当配置的FtpRemoteFileTemplate
进行配置。
哪个需要会话工厂。
pickupChannel
将是DirectChannel
。
修改强>:
您还应该查看具有FTP一流支持的Java DSL。看看reference docs。
具体来说,请参阅this test case。