Spring Integration调用多个方法并响应同一个bean

时间:2014-06-22 21:19:02

标签: java spring concurrency spring-integration

我是Spring Integration的新手。在当前场景中,我试图调用这样的方法:

MyObject.setMyList();
MyObject.setMyList1();
MyObject.setMyList2();
MyObject.setMyList3();

我有一个界面来定义网关,但我的问题是如何使用spring集成一次运行这多个方法并返回MyObject。所有方法都是相互依存的。

第二种情况:我有一个依赖于另一个方法结果的方法。 Method2依赖于Method1结果。

method2.getMethod2Result(method1_String).

如何使用Spring Integration处理这种情况?

我知道如何处理它,而不是Spring Integration。

3 个答案:

答案 0 :(得分:1)

Spring集成中没有bean,您只有消息。假设你的bean实际上是某个消息的有效负载,你可以通过编写自定义transformers(如payload enrichers)来实现这两种用例,它在调用一些方法序列后返回相同的对象。 / p>

答案 1 :(得分:1)

如果您的用例非常紧张,我认为没有理由使用消息通道和一堆服务激活器来解耦它。

看起来只是编写一些自定义POJO并从一个<service-activator>引用它就足够了。

该自定义POJO应封装MyObject上的方法调用。

从这里开始,MyObject将是inbound,可以是outbound,也可以是payload {{1}}。

请阅读更多文档。

答案 2 :(得分:0)

对于第一种情况,您可以使用Splitter-Aggregator模式,您可以为每个路径调用不同的方法,并在聚合器中组合结果。对于第二种情况,一次调用的结果转到另一种情况,您只需使用

即可

<service-activator>

with mutliple in and out channels