【发布时间】:2014-11-04 16:37:20
【问题描述】:
我们有一个 Spring Boot 应用程序,由于集成需求而变得越来越复杂——比如在你这样做之后发送电子邮件,或者在你这样做之后广播一条 jms 消息等。在寻找一些更高级别的抽象时,我遇到了 apache骆驼(以前从未使用过骆驼)。我的问题是我如何处理 Spring Boot 应用程序?该应用程序具有标准的 spring 控制器、服务并使用 spring-data 连接到数据库。我在网上没有找到太多关于如何将骆驼合并到 spring-boot 宁静应用程序中的帮助。这甚至是可行的还是骆驼是弹簧靴不适合的完全不同的野兽?
我确实读过 Camel 与 Spring 紧密集成,但我仍然不知道 1)Spring 控制器仍然可以与 Camel 一起使用 2)我是否可以从骆驼路由调用其他 Spring bean 以及是否我可以调用从 spring bean 调用骆驼路线(对不起,如果这些听起来像专家的骆驼新手问题)
作为我们必须做的一个例子:
- 在完成向数据库写入有关订单的任何内容后,我们必须向订单处理部门发送一封电子邮件
- 如果有人删除了特定用户地址,我们必须发送到 jms 主题,以便其他应用程序可以采取行动。
今天每个 http 请求都通过 Spring MVC 堆栈进入。
有没有办法在特定任务完成后将处理“移交”给骆驼? (比如通过 Spring MVC 堆栈成功将订单写入数据库并交给骆驼发送 jms 消息并做其他事情)?还是我们应该用 Camel 完全取代 Spring?
不确定正确的路径是什么。有人可以指导我们吗?
【问题讨论】:
-
虽然您可能能够让 Apache Camel 与 Spring Boot 一起工作,但您也可能想尝试 Spring Integration,它涵盖与 Apache Camel 相同的内容。优点是Spring Boot已经支持了。
-
我有一个集成了 Spring Boot 的 Apache Camel 应用程序。效果很好。
-
@MattRaible - 你能分享更多细节吗?你是完全使用 Spring 的 rest 控制器还是一切都通过 Camel 完成?你如何从spring boot到camel and back?如果您能分享更多细节,我们将不胜感激。
-
一切都是通过骆驼完成的。我没有任何 Spring 控制器,只有由 CXF 和 Camel 提供支持的 SOAP 服务。 Camel 和所有 Spring 组件都使用 JavaConfig 配置 - 没有 XML。
-
我今天写了一篇关于将 Spring Boot 集成到我们的 Camel 项目中的博文。希望能帮助到你! raibledesigns.com/rd/entry/…
标签: spring spring-mvc apache-camel spring-boot