Spring集成dsl:按负载类型路由

时间:2016-01-26 16:03:54

标签: spring-integration

鉴于:

   return from(listenerContainer(connectionFactory, queue))
             .handle(Foo.class, new HandlerForFoo()).get();
}

如果通道接收到Bar.class类型的有效负载,我如何调用HandlerForBar?我的意思是这样的:

      return from(listenerContainer(connectionFactory, queue))
             .handle(Bar.class, new HandlerForBar());
             .handle(Foo.class, new HandlerForFoo()).get();
}

1 个答案:

答案 0 :(得分:6)

它不会那样工作。流定义假设第二个node * search(node *root,int k) { if(root == NULL) return NULL; if(root->data == k) return root; else { search(root->left,k); search(root->right,k); } return NULL; } 跟在第一个之后。

对于.handle()目的,确实存在一种特殊的企业集成模式 - Message Router

Spring Integration提供了关于此事的特定实现 - PayloadTypeRouter

使用Spring Integration Java DSL,我们可以通过以下方式满足您的要求:

payload type