我正在使用文件端点来监视文件的更改。
- 每当编辑文件时(即上次修改时间更改),我都需要得到通知
- 我应该使用 Spring 属性占位符从属性中指定文件的路径
如果我写,一切正常:
<camelContext>
<route>
<from uri="file:/my/path?fileName=myFilename.txt&noop=true&idempotentKey=${file:name}-${file:modified}" />
<log message="Received file: ${header.CamelFilePath} (${header.CamelFileLastModified})" />
<to uri="direct:result" />
</route>
</camelContext>
但是,如果我将代码更改为使用 Spring 属性,从而创建一个<endpoint>
,它就不再起作用了。
<camelContext>
<endpoint id="fileEndpoint"
uri="file://${ids.log.dir}?fileName=${ids.log.file}&noop=true&idempotentKey=${file:name}-${file:modified}" />
<route id="fileRoute">
<from ref="fileEndpoint" />
<log message="Received file: ${header.CamelFilePath} (${header.CamelFileLastModified})" />
<to uri="direct:result" />
</route>
</camelContext>
我想${}
符号和${file:...}
占位符过早扩展存在问题。
我该如何解决这个问题?(我将使用 Spring 属性,而不是 Camel 的。)有什么办法可以逃脱$
?