第 17 章 Groovy
概述 复制链接链接已复制到粘贴板!
Groovy 是基于 Java 的脚本语言,允许快速解析对象。Groovy 支持是 camel-groovy
模块的一部分。
添加 script 模块 复制链接链接已复制到粘贴板!
要在路由中使用 Groovy,您需要向项目添加 一个依赖项
,如 例 17.1 “添加 camel-groovy 依赖项” 所示。
例 17.1. 添加 camel-groovy 依赖项
静态导入 复制链接链接已复制到粘贴板!
要在应用程序代码中使用 groovy ()
静态方法,请在 Java 源文件中包含以下导入语句:
import static org.apache.camel.builder.script.ScriptBuilder.*;
import static org.apache.camel.builder.script.ScriptBuilder.*;
内置属性 复制链接链接已复制到粘贴板!
表 17.1 “Groovy 属性” 列出使用 Groovy 时可以访问的内置属性。
属性 | 类型 | value |
---|---|---|
|
| Camel 上下文 |
|
| 当前的交换 |
|
| IN 信息 |
|
| OUT 消息 |
|
|
通过 |
ENGINE_SCOPE
设置的属性。
Example 复制链接链接已复制到粘贴板!
例 17.2 “使用 Groovy 的路由” 显示了使用 Groovy 脚本的两个路由。
例 17.2. 使用 Groovy 的路由
使用属性组件 复制链接链接已复制到粘贴板!
要从 properties
组件访问属性值,请在内置属性中调用 resolve
方法,如下所示:
.setHeader("myHeader").groovy("properties.resolve(PropKey)")
.setHeader("myHeader").groovy("properties.resolve(PropKey)")
其中 PropKey 是您要解析的属性的键,其中键值是 String
类型。
有关属性组件的详情,请参阅 Apache Camel 组件参考指南 中的 属性。
自定义 Groovy Shell 复制链接链接已复制到粘贴板!
有时,您可能需要在 Groovy 表达式中使用自定义 GroovyShell
实例。要提供自定义 GroovyShell
,请将 org.apache.camel.language.groovy.GroovyShellFactory
SPI 接口的实现添加到 Camel registry 中。
例如,当您将以下 bean 添加到 Spring 上下文中时,Apache Camel 将使用包含自定义静态导入的自定义 GroovyShell
实例,而不是默认导入。