我已经开始使用Apache Camel,并且遇到了需要执行以下条件块的情况。
if(Condition A) {
then Activity A to determine Condition B;
If(Condition B) {
Then Activity B
} else {
Then Activity C
}
} else {
Do nothing and end the route.
}
这是我想出的,但它只不过是猜测,它没有用适当的理解写出来。
...
...
.process(new SomeActivity())
.choice()
.when(header(ConditionA).isEqualTo(Boolean.TRUE))
.process(new ActivityToSetConditionB())
.choice()
.when(header(ConditionB).isEqualTo(Boolean.TRUE))
.process(new ActivityRelatedToB())
.otherwise()
.process(new ActivityRelatedToC())
.endChoice()
.end()
我试着从Apache camel文档和其他一些资料中理解它,但是对于像我这样的初学者来说,它似乎不是很直观。请用一些例子帮助我理解它。
1条答案
按热度按时间kwvwclae1#
是的,您使用Content based router是处理条件消息路由的正确方法。
然而,如果你想更好地理解Camel,我强烈推荐书Camel in Action(第2版)。你会在书中找到框架的所有重要概念和大量的例子。