文件端点uri中的Spring属性和幂等键
我正在使用文件端点监视文件的更改文件端点uri中的Spring属性和幂等键,spring,apache-camel,endpoint,idempotent,Spring,Apache Camel,Endpoint,Idempotent,我正在使用文件端点监视文件的更改 无论何时编辑文件(即上次修改的时间更改),都需要通知我 我应该使用Spring属性占位符从属性中指定文件的路径 如果我写下以下内容,一切正常: <camelContext> <route> <from uri="file:/my/path?fileName=myFilename.txt&noop=true&idempotentKey=${file:name}-${file:modified
<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属性,从而创建一个
,它就不再工作了
<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属性)是否有任何方法可以转义
$
?Camel属性占位符使用{
和}
样式。有关更多详细信息,请参阅
?它不起作用。另外,我无法编写{{log.dir}}
和{{log.file}}
,因为它们只能作为Spring属性使用。我使用
解决了这个问题,正如前面解释的那样(使用Spring PropertyPlaceHolderConfigure和文件组件)。