我已经开始使用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骆驼文档和其他一些资料中了解,但是对于像我这样的初学者来说,这似乎不是很直观。请通过一些示例帮助我理解这一点。
答案 0 :(得分:0)
是的,您使用Content based router是处理条件消息路由的正确方法。
但是,如果您想更好地了解骆驼,我强烈推荐Camel in Action这本书(第二版)。您会在本书中找到该框架的所有重要概念和许多示例。