如何在多个Apache Camel路由中包含常见行为?

时间:2018-05-10 14:43:54

标签: apache-camel spring-camel

我在Spring Boot 1.5.8应用程序中使用Camel 2.19.2。例如,如果我想要让我的几条路线“状态感知”,我该如何实现这一目标?我所说的“状态感知”是指路径将启动,通知组件工作流已经开始,然后它将执行特定于路由的逻辑,并且当完成时,它将通知组件工作流已完成。我希望这可以自动发生,如果可能的话,而不必调用我想要使用此功能的每个路由构建器中的特定逻辑。

这是一个代码示例,就像我的意思:

this.promisifyCallback()
    .then(this.functionSucess)
    .catch(this.functionError)
    .finally(this.functionResolve); // See ¹

从概念上讲,这几乎就像AOP,所以我希望能够在一个地方定义这种行为,并将其包含在需要使用此行为的一些路由中。有没有办法让我能做到这一点?我看到有什么建议用于测试,但我需要这个用于常规操作。提前谢谢。

1 个答案:

答案 0 :(得分:2)

我认为RoutePolicy和RoutePolicyFactory可以作为答案,即当路由或exchnage开始/停止时,您可以调用回调。

有关详细信息,请参阅http://camel.apache.org/routepolicy.html