10.4. 声明检查 EIP
声明检查 EIP
通过 声明检查 EIP 模式,如 图 10.4 “声明检查模式” 所示,您可以将消息内容替换为一个声明检查(唯一键)。使用 声明检查 EIP 模式来稍后检索消息内容。您可以将消息内容临时存储在像数据库或文件系统这样的持久性存储中。当消息内容非常大(且要发送时,不是所有组件都需要所有信息时,这个模式非常有用。
当您无法信任外部的信息时,它也很有用。在这种情况下,使用 Claim Check 隐藏数据的敏感部分。
EIP 模式的 Camel 实施将消息内容临时存储在内部内存存储中。
图 10.4. 声明检查模式

10.4.1. 声明检查 EIP 选项
Claim Check EIP 支持下表中列出的选项:
名称 | 描述 | 默认 | 类型 |
operation | 需要使用声明检查操作。它支持以下操作:
* get -
*
* set - 使用给定键设置新的声明检查。
* push - 在堆栈上设置新的声明检查(不要使用密钥)。
* 弹出 - 从堆栈获取最新的声明检查(不要使用该密钥)。
使用 | ClaimCheckOperation | |
key | 使用特定密钥进行声明检查。 | 字符串 | |
filter | 指定过滤器来控制要从声明检查仓库中合并的数据。 | 字符串 | |
strategyRef |
使用自定义 | 字符串 |
过滤器选项
使用 Filter
选项定义在使用 Get
或 Pop
操作时重新合并的数据。使用 AggregationStrategy
来重新合并数据。默认策略使用过滤器选项轻松指定要合并的数据。
过滤器选项
采用带有以下语法的 String 值:
-
正文
:聚合消息正文 -
Attachments
:聚合所有消息附件 -
标头
:聚合所有消息标头 -
header:pattern
: 聚合与模式匹配的所有消息标头
模式规则支持通配符和正则表达式。
-
通配符匹配项(模式以
*
结尾,名称以模式开头) - 正则表达式匹配
要指定多个规则,用 逗号
(、)分开它们。
以下是包含邮件正文和以 foo 开始的所有标头的基本过滤器示例:
body, header:foo*
-
只合并消息正文:
正文
-
只合并消息附加:
附加
-
只合并标头:
标头
-
要合并标题名称
foo
only:header:foo
如果您将过滤器规则指定为空的或通配符,您可以合并所有内容。如需更多信息,请参阅 过滤要合并的数据。
当合并数据时,系统会覆盖任何现有的数据。它还会存储现有数据。