104.4. Samples

您可以输入固定的 Constant 表达式,如 myfile.txt

fileName="myfile.txt"

我们假定我们使用文件使用者来读取文件,并希望将读取文件移至当前日期作为子文件夹的备份文件夹。这可以使用类似如下的表达式来建立:

fileName="backup/${date:now:yyyyMMdd}/${file:name.noext}.bak"

相对文件夹名称也受支持,假设备份文件夹应当是同级文件夹,您可以附加 ...,如下所示:

fileName="../backup/${date:now:yyyyMMdd}/${file:name.noext}.bak"

因为这是到 简单 语言的扩展,我们可以从这个语言访问所有好者,因此在这种情况下,我们希望将 in.header.type 用作动态表达式中的参数:

fileName="../backup/${date:now:yyyyMMdd}/type-${in.header.type}/backup-of-${file:name.noext}.bak"

如果您有要在表达式中使用的自定义日期,则 Camel 支持从邮件标头中检索日期。

fileName="orders/order-${in.header.customerId}-${date:in.header.orderDate:yyyyMMdd}.xml"

最后,我们还可以使用 bean 表达式调用 POJO 类,该类生成要使用的一些字符串输出(或转换为 String):

fileName="uniquefile-${bean:myguidgenerator.generateid}.txt"

所有课程都可以组合使用一种表达式,您可以在一个组合表达式中使用文件 语言简单Bean 语言。这对那些常见的文件路径模式来说非常强大。