10.5. 排序


排序

sort 模式用于对邮件正文的内容进行排序,假设消息正文包含可排序的项列表。

默认情况下,消息的内容使用处理数字值或字符串的默认比较器进行排序。您可以提供自己的比较器,您可以指定一个表达式,可返回要排序的列表(表达式必须可以被转换至 java.util.List)。

Java DSL 示例

以下示例生成项目列表,按令牌在行 break 字符中排序:

Copy to Clipboard Toggle word wrap
from("file://inbox").sort(body().tokenize("\n")).to("bean:MyServiceBean.processLine");

您可以将自己的比较器作为 sort ()传递至 sort ()

Copy to Clipboard Toggle word wrap
from("file://inbox").sort(body().tokenize("\n"), new MyReverseComparator()).to("bean:MyServiceBean.processLine");

XML 配置示例

您可以在 Spring XML 中配置相同的路由。

以下示例生成项目列表,按令牌在行 break 字符中排序:

Copy to Clipboard Toggle word wrap
<route>
  <from uri="file://inbox"/>
  <sort>
    <simple>body</simple>
  </sort>
  <beanRef ref="myServiceBean" method="processLine"/>
</route>

通过使用自定义比较器,您可以将其引用为 Spring bean:

Copy to Clipboard Toggle word wrap
<route>
  <from uri="file://inbox"/>
  <sort comparatorRef="myReverseComparator">
    <simple>body</simple>
  </sort>
  <beanRef ref="MyServiceBean" method="processLine"/>
</route>

<bean id="myReverseComparator" class="com.mycompany.MyReverseComparator"/>

除了 <simple > 外,您还可以使用您喜欢的任何语言提供一个表达式,只要它返回列表。

选项

sort DSL 命令支持以下选项:

名称

默认值

描述

comparatorRef

 

指的是用于排序消息正文的自定义 java.util.Comparator。默认情况下,Camel 将使用 A..Z 排序的比较器。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat, Inc.