Apache Camel提供了和Spring的集成,通过Spring容器(ApplicationContext)来管理Camel的CamelContext,这样的话,就不需要写代码来控制CamelContext的初始化,启动和停止了.Camel会随着Spring的启动而启动起来.
本文将Apache Camel框架入门示例(http://blog.csdn.net/kkdelta/article/details/7231640)中的例子集成到Spring中,下面简单介绍一下集成的基本步骤.
1,新建一个Eclipse工程,将Spring3的jar包,和Camel的jar包配置到工程的classpath.
2,Route类要继承RouteBuilde,如下
- public class FileProcessWithCamelSpring extends RouteBuilder {
- @Override
- public void configure() throws Exception {
- FileConvertProcessor processor = new FileConvertProcessor();
- from("file:d:/temp/inbox?delay=30000").process(processor).to("file:d:/temp/outbox");
- }
- }
3,Processor仍然和和入门示例的代码相同.
- public class FileConvertProcessor implements Processor{
- @Override
- public void process(Exchange exchange) throws Exception {
- try {
- InputStream body = exchange.getIn().getBody(InputStream.class);
- BufferedReader in = new BufferedReader(new InputStreamReader(body));
- StringBuffer strbf = new StringBuffer("");
- String str = null;
- str = in.readLine();
- while (str != null) {
- System.out.println(str);
- strbf.append(str + " ");
- str = in.readLine();
- }
- exchange.getOut().setHeader(Exchange.FILE_NAME, "converted.txt");
-
- exchange.getOut().setBody(strbf.toString());
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
4,创建一个Spring的配置文件如下:注意要将camel的xmlns加入文件中
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:camel="http://camel.apache.org/schema/spring"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"
- default-autowire="byName" default-init-method="init">
- <camelContext id="testCamelContext" xmlns="http://camel.apache.org/schema/spring">
- <package>com.test.camel</package>
- </camelContext>
- </beans>
5,启动Spring容器,Camel会自动启动,不用像入门示例那样CamelContext context = new DefaultCamelContext(), context.addRoutes(..); context.start();
ApplicationContext ac = new ClassPathXmlApplicationContext("config/cameltest.xml");
while (true) {
Thread.sleep(2000);
}
可见,Camel可以很容易的和Spring集成.
Camel还提供了"Spring DSL"来在XML中配置Route规则,不需要用JAVA类(如上面的FileProcessWithCamelSpring )来实现route.
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:camel="http://camel.apache.org/schema/spring"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"
- default-autowire="byName" default-init-method="init">
- <bean id="fileConverter" class="com.test.camel.FileConvertProcessor"/>
- <camelContext id="testCamelContext" xmlns="http://camel.apache.org/schema/spring">
- <route>
- <from uri="file:d:/temp/inbox?delay=30000"/>
- <process ref="fileConverter"/>
- <to uri="file:d:/temp/outbox"/>
- </route>
- </camelContext>
- </beans>
与第五步一样启动Spring容器,Camel会每隔30秒轮询一下看d:/temp/inbox是否有文件,有的话则进行处理.
分享到:
相关推荐
Java_Apache Camel Spring Boot示例是一个综合性的项目,展示了如何在Spring Boot应用程序中集成Apache Camel框架。Apache Camel是一个流行的开源框架,它简化了企业级集成(EIP,Enterprise Integration Patterns)...
6. **Spring和OSGi集成**:Camel可以无缝集成到Spring框架中,利用Spring的依赖注入和配置能力。此外,它也支持在OSGi容器(如Apache Karaf)中部署和管理。 7. **分布式系统集成**:Camel的异步处理和负载均衡特性...
此外,Camel 还与许多其他项目有着良好的兼容性,例如 Spring Framework、Apache Karaf 等,这为开发者提供了更多的选择和灵活性。 通过学习《Camel in Action》,开发者不仅能够掌握 Apache Camel 的核心技术和...
Apache Camel 是一个强大的开源框架,专门用于构建企业级应用程序中的集成解决方案。它提供了一种声明式的方式来进行服务集成和服务编排,使得开发者可以方便地连接不同的系统、协议和API,从而构建复杂的数据流。在...
总结,"Apache Camel 开发指南"是学习和掌握Camel框架的重要资源,涵盖了从基础概念到高级特性的全面内容。通过深入研究这些文档,开发者可以有效地利用Camel构建高效、可扩展的企业级集成解决方案。
Apache Camel 是一个强大的开源集成框架,它以规则为基础的路由和中介引擎为核心,实现了企业应用模式(EIP,Enterprise Integration Patterns)的POJO化。这个框架的目的是简化不同系统和服务之间的集成,允许...
在这个"01-ApacheCamel-HelloWorld"示例中,我们将深入理解如何使用 Camel 实现一个简单的 HTTP "Hello World" 应用。 Apache Camel 的核心理念是“编程通过配置”,它提供了丰富的组件库,可以与各种协议、API 和...
Apache Camel 是一个强大的开源集成框架,它允许开发者在各种企业应用程序之间建立灵活、可重用的数据路由和集成解决方案。这个框架的核心理念是“统一的消息模型”,它提供了多种组件,支持多种协议和数据格式,...
Apache CXF和Spring提供了丰富的扩展点,可以集成如Spring Security来控制访问权限,使用Spring AOP来处理事务,以及通过CXF的拦截器机制来实现自定义的日志、验证等功能。 总结来说,Apache CXF 2与Spring 2.5的...
Apache Camel 是一个流行的开源集成框架,它允许开发者在各种企业集成模式之间建立连接,从而实现应用程序之间的通信。这个"apache-camel-1.0.0.zip"文件是Apache Camel的1.0.0版本的发布包,包含了该版本的所有组件...
Apache Camel 是一个强大的开源集成框架,它允许开发者以声明式的方式定义路由和转换数据的规则。这个"apache-camel-2.5.0.zip"压缩包包含的是Apache Camel的2.5.0版本,该版本发布于2011年,是Camel发展历史上的一...
6. **Spring集成**:Camel 可以无缝集成到Spring框架中,利用Spring的依赖注入和配置管理功能,简化Camel应用的开发和维护。 7. **Osgi支持**:2.12.0版本可能仍然支持在Osgi容器(如Apache Felix或Equinox)中运行...
《Camel实战中文版第四章》主要探讨了Apache Camel框架中如何利用现有的Java Bean进行消息处理和服务调用。这一章节对于理解和掌握Camel如何与现有Java系统集成非常重要。 #### 二、ServiceActivator企业设计模式的...
标题中的"ecg-broker_websocket_apachecamel_"似乎是指一个使用Apache Camel来处理心电图(ECG)数据的系统,它特别关注WebSocket通信。这个系统利用Apache Camel的强大功能,通过修改配置文件来适应不同的接口,如...
**Apache Camel** 是一个强大的开源集成框架,基于已知的企业集成模式(Enterprise Integration Patterns, EIP),并提供了强大的 Bean 集成能力。它支持多种编程语言和配置方式,包括 Java 基于领域特定语言 (DSL) ...
Apache Camel 是一个轻量级的集成框架,基于企业整合模式(EIP)设计,它提供了一种简单且灵活的方式来连接各种应用程序和系统。Camel 项目始于2007年,尽管相对较新,但已经在开源社区中确立了成熟的地位,采用...
《Camel in Action》是关于Apache Camel这一企业级集成框架的专业书籍,这本书深入浅出地讲解了如何使用Camel构建高效、可维护的集成解决方案。PDF版本提供了方便的电子阅读体验,而源代码则帮助读者更好地理解书中...
Apache Camel 是一个流行的开源框架,主要用于构建企业级集成解决方案。它提供了一种声明式的方式,通过使用简单且直观的DSL(领域特定语言)来定义路由和消息转换规则。在这个"Java_Apache Camel示例.zip"压缩包中...
使用 Apache Camel 和 Spring 集成的企业集成模式。 用于使用框架演示 EIP 的域是自行车商店。...6弹簧集成Spring Integration 不支持 CSV 文件,因此我们为此使用 Spring Batch。 一次读取一个交货单记录,将其转