Spring集成拖尾多个文件

use*_*468 5 java spring spring-integration

我正在编写一个Spring集成应用程序,它应该包含多个文件(可能多达100个).我使用OSDelegatingFileTailingMessageProducer作为消息源,这是涉及多个过滤器和通道的管道的开始.

Tailing一个文件可以正常使用这个管道和一个用于通道和转换器的XML配置文件,但拖尾许多这些文件意味着这个XML配置的倍增,这在我看来并不是很好的编程实践.

我想我将不得不通过编程构建Spring应用程序上下文在Java中构建这些管道.还有其他选择吗?

编辑:

可能需要使用BeanFactoryPostProcessor:https://stackoverflow.com/a/15773000/2069922

Gar*_*ell 4

我认为以编程方式创建消息生成器并将它们连接到同一个outputChannel. 实际上并不需要每次都创建 Spring 应用程序上下文。只需从上下文(例如 )获取通道@AutoWired并设置outputChannel.

轮询适配器有点复杂,但在这种情况下,每个尾部适配器都是一个简单的单个 bean。

请务必在设置属性后调用afterPropertiesSet()和。start()

但是,如果您希望每个 tailer 都有唯一的下游流,那么您可以使用类似于动态 ftp 示例的技术,并具有参数化的应用程序上下文。