我想使用Spring集成来开发应用程序以进行以下操作
我不确定如何配置它,我找不到任何好的文档。他们中的大多数是在xml中的配置,我想要java config。我有此代码,但这只是复制文件并删除源。我不知道如何处理来源。
@Bean
public MessageChannel fileInputChannel() {
return new DirectChannel();
}
@Bean
@InboundChannelAdapter(value = "fileInputChannel", poller = @Poller(fixedDelay = "1000"))
public MessageSource<File> fileReadingMessageSource() {
FileReadingMessageSource source = new FileReadingMessageSource();
source.setDirectory(new File(INBOUND_PATH));
source.setFilter(new SimplePatternFileListFilter("*.pdf"));
source.setLoggingEnabled(true);
return source;
}
@Bean
@ServiceActivator(inputChannel = "fileInputChannel")
public FileWritingMessageHandler fileWritingMessageHandler() {
FileWritingMessageHandler fileWritingMessageHandler = new FileWritingMessageHandler(
new File(OUTBOUND_PATH));
fileWritingMessageHandler.setAutoCreateDirectory(true);
fileWritingMessageHandler.setExpectReply(false);
fileWritingMessageHandler.setDeleteSourceFiles(true);
return fileWritingMessageHandler;
}
fileInputChannel
必须是具有您现有的PublishSubscribeChannel
作为
fileWritingMessageHandler()
。 @ServiceActivator
)来处理该文件,并按照您所说的将其存储在DB中,这肯定是该文件之后的下一个@ServiceActivator
。@Order
注释和提及的@ServiceActivator
,以确保您的订阅者以正确的顺序订阅。由于您确实要移动文件,因此在发送到FileWritingMessageHandler
之前对其进行处理非常重要。说,我想请您阅读以EIP Book开头的文档,以使自己熟悉集成概念和原理。