我将使用Spring框架开始一个新项目。因为我在Spring没有太多经验,所以我需要你的帮助来解决一些困惑。
让我们看看用例
我的应用程序使用Spring集成框架。我的应用程序的核心功能是,
目前我已经为它设置了弹簧集成流程。其中inbound-chaneell-adapter
用于轮询,然后通过通道进行文件遍历,最后插入到数据库中。
我关注的是
应该轮询的应用程序目录数量将在运行时决定。因此我需要在运行时创建inbound-chanell-adapter
(因为一个chanell适配器一次只能轮询一个目录)并且无法在我的 spring context xml 中静态定义它们(因为我不知道有多少我需要)。
每个目录都有一些属性,应该在处理时应用于文件。(在完成整合流程时)
所以我现在正在做的是为每个目录加载new ClassPathXmlApplicationContext("/applicationContext.xml");
。并在新创建的上下文中缓存所需的属性。并在处理时使用它们(<int:service-activator>
)。
当前设计的缺点
那么有没有办法以不会复制上下文的方式设计应用程序。而且我仍然可以在整个集成流程中同时使用每个目录的属性???
提前致谢。
答案 0 :(得分:3)
请参阅dynamic ftp sample及其自述文件中有关在需要时创建子上下文的链接,其中包含新的入站组件。
另请参阅我对similar question for multiple IMAP mail adapters using Java configuration和follow-up question的回答。
您还可以使用消息源建议在每个轮询上重新配置FileReadingMessageSource
以查看不同的目录。请参阅Smart polling。