sat*_*sat 5 spring spring-mvc apache-camel spring-boot
我们有一个Spring Boot应用程序,由于集成需求,该应用程序的复杂性不断增加-例如在执行此操作后发送电子邮件,或在此之后广播jms消息等。在寻找更高层次的抽象时,我遇到了apache camel(haven)从未使用过骆驼)。我的问题是如何使用Spring Boot应用程序?该应用程序具有标准的spring控制器,服务,并使用spring-data来连接数据库。我没有在网上找到关于如何将骆驼合并到Spring-boot Restful应用程序中的任何帮助。难道这甚至是可行的事情,或者骆驼是完全不适合弹簧靴的野兽吗?
我确实读过Camel与Spring紧密集成,但是我仍然不知道1)Spring Controllers仍然可以与Camel一起使用2)如果我可以从骆驼路线中调用其他spring bean,以及是否可以调用从春豆调用骆驼路线(对不起,如果这听起来像是专家的骆驼新手问题,抱歉)
作为我们必须做的事的一个例子:
今天,每个http请求都通过Spring MVC堆栈传入。
在完成特定任务后,是否有办法将处理过程“转交给”骆驼?(例如,通过Spring MVC堆栈成功将订单写入数据库,然后交给骆驼发送jms消息并执行其他操作)?还是应该用Camel完全替代Spring?
不确定正确的路径是什么。有人可以指导我们吗?
一种选择是
1> 在 Spring DSL 或 Java DSL 或其他方式中定义骆驼路由,并在 Spring 应用程序上下文中定义它。
2>并有一个实现ApplicationContextAware的类并将Spring ApplicationContext缓存在静态变量中。
3> 对于@Controller,我们可以获取这个静态变量并获取ApplicationContext。
4> 使用camel上下文ID,我们可以从ApplicationContext中获取Bean。
5> 这是DefaultCamelContext的实例,用它我们可以创建一个Producer并从@Controller调用camel路由。
| 归档时间: |
|
| 查看次数: |
8167 次 |
| 最近记录: |