第 1 章 为路由定义构建块
摘要
Apache Camel 支持两种替代 域特定语言 (DSL)来定义路由:Java DSL 和 Spring XML DSL。定义路由的基本构建块是 端点和 处理器,其中处理器的行为通常由表达式或逻辑 predicates 修改。Apache Camel 允许您使用各种不同的语言定义表达式和 predicates。
1.1. 实施 RouteBuilder 类 复制链接链接已复制到粘贴板!
概述 复制链接链接已复制到粘贴板!
					要使用 域特定语言 (DSL),您可以扩展 RouteBuilder 类并覆盖其 configure () 方法(您定义路由规则的位置)。
				
					您可以根据需要定义任意数量的 RouteBuilder 类。每个类实例化一次,并使用 CamelContext 对象注册。通常,每个 RouteBuilder 对象的生命周期由部署路由器的容器自动管理。
				
RouteBuilder 类 复制链接链接已复制到粘贴板!
					作为路由器开发人员,您的核心任务是实施一个或多个 RouteBuilder 类。您可以继承两种替代的 RouteBuilder 类:
				
- 
							
org.apache.camel.builder.RouteBuildermvapich-MIRROR this 是适合 部署到任何 容器类型的通用RouteBuilder基础类。它在camel-core工件中提供。 - 
							
org.apache.camel.spring.SpringRouteBuildermvapich-MIRROR this base 类专门适应 Spring 容器。特别是,它提供了对以下 Spring 特定功能的额外支持:在 Spring registry 中查找 bean (使用beanRef ()Java DSL 命令)和事务(详情请参阅 Transactions 指南 )。它在camel-spring工件中提供。 
					RouteBuilder 类定义用于启动路由规则的方法(例如,from ()、拦截器 () 和 exception ())。
				
实施 RouteBuilder 复制链接链接已复制到粘贴板!
					例 1.1 “RouteBuilder 类的实现” 显示最小 RouteBuilder 实施。configure () 方法正文包含路由规则;每个规则都是单个 Java 语句。
				
例 1.1. RouteBuilder 类的实现
					规则的形式 from (URL1).to (URL2) 指示路由器从目录 src/data 读取文件,并将它们发送到目录 target/messages。选项 ?noop=true 指示路由器在 src/data 目录中保留(不删除)源文件。
				
						当您将 contextScan 与 Spring 或 Blueprint 搭配使用时,默认 Apache Camel 将查找单例 Bean。但是,您可以打开旧行为,使其包含带有新选项 includeNonSingletons 的原型范围。