我想在运行时更改文件源的配置。从我在文档和源代码定义中看到的,目录是静态定义的(即没有表达式),请参阅the bean definition。
我知道使用普通的Spring Integration可以在入站文件通道适配器上调用setDirectory(...)
。有没有办法在XD中做同样的事情?
提前致谢。
答案 0 :(得分:1)
虽然您可以在消息源上调用setDirectory()
,但要注意auto-create-directory
(默认true
)将不起作用 - 该目录是在创建bean期间创建的。但它适用于现有目录。
执行所需操作的一种可能性是自定义文件源以添加将委托给MBean
的包装器FileReadingMessageSource.setDirectory()
您可以使用bean名称{{1}获取对bean的引用(你必须给适配器一个<adapterId>.source
属性)。
然后您可以通过JMX更改目录(或者通过添加控制总线向您的包装器发送消息 - 在这种情况下,您需要一些其他技术来向控制总线发送消息 - http,tcp等)。