我使用Spring Integration(在xml中定义)构建了spring应用程序来监听特定的JMS主题,转换数据并将其发布到RabbitMQ队列。 在xml中我将外部化到属性文件的所有配置数据(例如主题名称,url,用户名,密码),我使用此条目加载到xml中:
它运行得很好,但现在看来我需要创建一个客户端可以连接到的web服务并指定他感兴趣的主题名称。服务器然后会传回它发布的队列的引用转化的信息。我认为重用当前正在运行的应用程序会很好。然后,每次客户端发送请求时都需要加载新的独立spring上下文,并在运行时指定不在config.properties文件中的属性。
现在问题: 1.似乎是积极的,每个客户的请求都被完全隔离处理,但是启动多个上下文并不是一种过度杀戮(每次客户端想要收听新主题时)? 2.如何以不同于配置文件的方式传递属性?例如,我可以在启动上下文时以某种方式传递参数Map而不是文件吗?
非常感谢您的建议。
答案 0 :(得分:0)
dynamic-ftp示例显示了如何使用属性启动上下文。
对于入站适配器,您可能需要将上下文设置为子上下文 - 这样您就可以通过发送到公共通道来共享用户的下游流。
自述文件中有关于如何做到这一点的链接; this question和its followup的答案在将Java @Configuration
与电子邮件适配器一起使用时显示了类似的技巧。