【问题标题】:Runtime configurable dynamic routing in spring integrationSpring集成中的运行时可配置动态路由
【发布时间】:2014-04-23 15:32:39
【问题描述】:

我想构建一个包含多个出站网关的方案,可以在运行时添加(假设它从 2 个网关开始,但能够在运行时添加第 3-4 个网关)。我想为它们的功能提供 http-outbound-gateways,但想在运行时构建它们的实例。 问题在于在春季上下文中注册订阅这些网关的频道。 Atm 我有 3 种选择,但无法选择正确的一种。

  1. 使用registerBeanDefinition("<my id>", definition) 或类似的东西将新创建的通道注册到应用程序上下文。对这个决定不满意的原因是不想对已经构建的上下文进行如此粗暴的访问。

  2. 具有预定义的通道列表,并限制插入具有此预定义通道数量的新出站网关。变体适合我,因为计划中的网关很少,而且对我来说似乎很安全,虽然不是很整洁。

  3. 搜索解决方案,我找到了org.springframework.integration.support.channel.BeanFactoryChannelResolver org.springframework.integration.support.channel.HeaderChannelRegistry 似乎适合我与原型通道 bean 一起使用。 (我必须参考我需要的地图名称)。但是,由于org.springframework.integration.support.channel.BeanFactoryChannelResolver 没有此注册表的公共设置器,我不确定我是否可以安全地使用它,尽管我考虑使用自己的 ChannelResolver 来满足此需求。

解决这个问题的正确方法是什么?

【问题讨论】:

    标签: java spring spring-integration


    【解决方案1】:

    请参阅dynamic-ftp sample application。它使用子应用程序上下文添加 ftp 出站适配器。

    实际上,动态路由器路由到每个适配器的输入通道。

    【讨论】:

      猜你喜欢
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-17
      • 1970-01-01
      相关资源
      最近更新 更多