Apache Camel是一个主要有助于解决企业集成挑战的框架。它的核心可以被认为是路由引擎引擎构建器。实质上,它允许您通过路由连接系统(端点)。这些路由接受可以是任何数据类型的消息。
Apache Camel框架还包含一整套EIP(企业集成模式),例如拆分器,聚合器,基于内容的路由等。由于框架可以在各种独立的Java应用程序中部署,在各种应用程序服务器(如WildFly和Tomcat)中,或者在完全成熟的企业服务总线上,因此可以将其视为集成框架。
要开始使用该框架,您需要使用以下方法之一将其添加到项目中:
Camel的DSL(领域特定语言)是使Camel从其他Integration框架中脱颖而出的功能之一。虽然其他一些框架也具有DSL概念,通常采用XML文件的形式,但DSL在这种情况下始终是基于自定义的语言。
Camel提供多种编程语言的DSL,如Java,Scala,Groovy和XML。
例如,可以通过各种方式完成简单的文件复制路由,如下面的列表所示
Java DSL
from("file:data/in").to("file:data/out");
蓝图/ Spring DSL(XML)
<route>
<from uri="file:data/inbox"/>
<to uri="file:data/out"/>
</route>
Scala DSL
from "file:data/inbox" -> "file:data/out"
有关添加所需Camel依赖项的详细说明。
在您的应用程序中包含Apache Camel的最常见方法之一是通过Maven依赖。通过添加下面的依赖块,Maven将为您解析Camel库和依赖项。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.17.3</version>
</dependency>
在您的应用程序中包含Apache Camel的另一种常见方法是通过Gradle依赖。只需在下面添加依赖项行,Gradle将为您导入Camel库及其依赖项。
// https://mvnrepository.com/artifact/org.apache.camel/camel-core
compile group: 'org.apache.camel', name: 'camel-core', version: '2.17.3'
从Camel 2.15开始,您现在可以利用Apache Camel的Spring Boot依赖项。与Camel库的不同之处在于它提供了一种固定的自动配置,包括自动检测Camel路由。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-boot</artifactId>
<version>${camel.version}</version> <!-- use the same version as your Camel core version -->
</dependency>