33.5. Samples
您可以输入固定的文件名,如 myfile.txt :
fileName="myfile.txt"
fileName="myfile.txt"
假设我们假设使用文件使用者读取文件,并希望将读取文件移动到将当前日期作为子文件夹的备份文件夹。这可以通过类似如下的表达式完成:
fileName="backup/${date:now:yyyyMMdd}/${file:name.noext}.bak"
fileName="backup/${date:now:yyyyMMdd}/${file:name.noext}.bak"
还要支持相对文件夹名称,因此假设备份文件夹应为同级文件夹,然后您可以附加 ...,如下所示:
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"
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"
fileName="orders/order-${in.header.customerId}-${date:in.header.orderDate:yyyyMMdd}.xml"
最后,我们还可以使用 bean 表达式来调用 POJO 类,该类生成要使用的字符串输出(或可转换为 String):
fileName="uniquefile-${bean:myguidgenerator.generateid}.txt"
fileName="uniquefile-${bean:myguidgenerator.generateid}.txt"
当然,所有这些都可以在一个表达式中合并,您可以使用一个组合表达式中的 和 语言。这对常见的文件路径模式非常强大。