【问题标题】:Triggering Spring Integration触发 Spring 集成
【发布时间】:2014-12-24 15:41:04
【问题描述】:

我对 Spring 集成和整个 Spring 框架还是个新手,所以请多多包涵。我一直在看这个例子。

https://github.com/benjaminwootton/spring-integration-examples/blob/master/target/classes/direct-channel-example.xml

https://github.com/benjaminwootton/spring-integration-examples/tree/master/src/main/java/examples/components

我想知道我或 Spring 如何准确地触发该方法? 我正在尝试为我的 REST 服务使用直接通道进行循环。我的 REST 服务使用消息并对其进行处理。

我了解,使用直接通道,Spring 将循环通过订阅者,但我不确定 Spring 实际如何触发该方法。

感谢您的任何帮助或建议。

【问题讨论】:

    标签: java spring rest spring-integration


    【解决方案1】:

    Spring Integration 中的第一类公民是MessageChannel,因此为了允许消息(HTTP 请求)在集成流中传输,我们应该将消息发送到某个<channel>

    既然你说你在 REST 服务中,我假设你使用:

    <int-http:inbound-gateway path="/path1,/path2"
                     request-channel="myChannel"/>
    

    这里的myChannel是一个组件,在转换为Spring集成Message之后,HTTP请求将被发送到该组件。

    当然,MessageChannelpipe,当我们将一个东西推到一边,而另一边确实应该有东西来轮询那个东西。在DirectChannel 的情况下,它是一些subscriber。我们在这里涉及二等公民 - MessageHandler

    如果你在那里使用&lt;service-activator input-channel="myChannel" ref="foo" method="service"&gt; 之类的东西,调用堆栈可能如下所示:

    DirectChannel#send -> UnicastingDispatcher#dispatch -> 
              ServiceActivatingHandler#handleMessage -> MethodInvokingMessageProcessor#processMessage -> 
                    MessagingMethodInvokerHelper#process -> foo#service
    

    HTH

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-01
      • 2015-09-14
      • 2017-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-04
      • 2013-08-21
      相关资源
      最近更新 更多