Java 骆驼滤波方法签名
我有一个Java 骆驼滤波方法签名,java,apache-camel,esb,middleware,Java,Apache Camel,Esb,Middleware,我有一个OrderPOJO,在我的驼峰路线上,我希望通过如下过滤器传递每个Order实例(消息): ExpensiveOrderFilter eof = new ExpensiveOrderFilter(); from("direct:whatever") .filter().method(eof) .to("direct:wherever"); 如果他们的订单#getPrice()超过$100.00,则过滤器应该只允许订单s public class ExpensiveOr
Order
POJO,在我的驼峰路线上,我希望通过如下过滤器传递每个Order
实例(消息):
ExpensiveOrderFilter eof = new ExpensiveOrderFilter();
from("direct:whatever")
.filter().method(eof)
.to("direct:wherever");
如果他们的订单#getPrice()
超过$100.00,则过滤器应该只允许订单
s
public class ExpensiveOrderFilter {
public void filterCheapOrders(Order order) {
if(order.getPrice() < 100.00)
???
else
???
}
}
公共类ExpensiveOrderFilter{
公共无效过滤器过滤器(订单){
if(order.getPrice()<100.00)
???
其他的
???
}
}
filtercheaporters
方法需要什么样的外观才能正确过滤掉“便宜的”(100美元)订单,防止它们被发送到direct:where
?提前谢谢 这有两个部分。第一个是方法(..)
是一种称为谓词的Camel类型。您将调用的任何实际方法都需要返回布尔值,因此:
public class ExpensiveOrderFilter {
public boolean isCheapOrder(Order order) {
return order.getPrice() < 100.00;
}
}
只有廉价订单才会继续。对于直截了当的表达式,您也可以考虑构建到CAMEL中的表达式语言,并跳过Bean:
.filter().simple("${body.price} < 100")
.filter().simple(${body.price}<100”)
将Order
参数传递到isCheapOrder(Order-Order)
方法的何处?是“eof”吗?eof只是ExpensiveOrderFilter的一个实例。Camel将使用bean绑定()将交换的有效负载(orderpojo)传递给Order参数。
.filter().simple("${body.price} < 100")