apache Camel中过滤器和选择之间有什么区别?
from("direct:a")
.choice()
.when(header("foo").isEqualTo("bar"))
.to("direct:b")
.when(header("foo").isEqualTo("cheese"))
.to("direct:c")
.otherwise()
.to("direct:d");
答案 0 :(得分:2)
简而言之,过滤器就像单个java if
语句,例如
if x = 2 {
...
}
在骆驼中:
.filter(header("foo").isEqualTo("bar"))
...
.end()
选择就像一个java if ... elseif ... elseif ... else
语句,
if x = 2 {
...
} else if x = 3 {
...
}
在骆驼中:
.choice()
.when(header("foo").isEqualTo("bar"))
...
.when(header("foo").isEqualTo("chese"))
...
.otherwise()
....
.end()
请注意,otherwise
中的choice
是可选的。
答案 1 :(得分:0)
此外,选择和过滤器执行相同的操作,其中过滤器中有其他属性Exchange,它将声明它是否已过滤。