问题概述
我使用apache camel 2.4并被要求在我们的一个maven / spring项目中设置内部消息系统。这可能看起来有点奇怪,但是因为他们计划在以后将某些功能分开,并且希望已经涵盖整合方面。
所需功能
基本上我有一个bean(A)进行一些处理并创建一个可序列化的对象。我有另一个bean(B)接受所述可序列化对象,并进行一些我们想要异步发生的额外处理。
计划是让bean(A)通过Camel的SEDA组件生成一条消息,并让它在内部被bean(B)使用。
我做了什么
到目前为止,我已经实现了这个;
- 创建定义路径的RouteBuilder实现。
- 在Spring中配置我的CamelContext以使用所述路由构建器。
- 创建"制作人"将CamelContext作为属性的类,并使用它来创建用于发送消息的ProducerTemplate。 - 由bean(A)使用。
- 定义bean(B)作为使用者(通过" bean:beanB"在配置的RouteBuilder中)。
问题
这是有效的,但对Camel来说是新手,我不确定这是否是实现所需功能的一种非常好的方法。进一步研究Camel文档后,似乎有很多不同的方法可以做同样的事情(在Spring中配置路由,而不是定义RouteBuiler实现,使用SedaEndpoint实现,在spring中定义ProducerTemplate,使用它作为依赖而不是CamelContext本身.....)。
实现所需功能的标准做法/最佳方法是什么?
答案 0 :(得分:1)
你可以用各种方式将事物连接在一起,但你所描述的非常标准......
说,你可以考虑以下......