Sunday, January 11, 2009

Camel中的几个重要概念之 Processor

Processor

Processor接口是用来表示一个处理消息的类, 这个接口的定义如下。

Processor
package org.apache.camel;
public interface Processor {
void process(Exchange exchange) throws Exception;
}

注意Process()方法中的参数是一个Exchange而不是一个Message。 这样的定义提供了更大的灵活性。例如我们可以在Process方法中调用exchange.getIn()来获取输入的消息,并处理它。 如果在处理过程中发生了错误,我们可以通过调用 exchange.setException() 设置这个异常。

对于一个应用开发这来说,他们可以通过实现Process接口来实现他们的业务逻辑。然后,在Camel内部库中, 这里有很多类通过实现了Process接口来提供EIP book中设计模式的实现。例如 ChoiceProcessor就实现了一个消息路由的模式。它通过使用和if-then-else相当的定义来完成一个消息从一个输入队列到多个输出队列的路由。另一个例子就是FilterProcessor,当通过这个Processor的处理的消息不能满足某个条件时,这个消息将被抛弃。

No comments:

Post a Comment