文件端点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&amp;noop=true&amp;idempotentKey=${file:name}-${file:modified

我正在使用文件端点监视文件的更改

  • 无论何时编辑文件(即上次修改的时间更改),都需要通知我
  • 我应该使用Spring属性占位符从属性中指定文件的路径
  • 如果我写下以下内容,一切正常:

    <camelContext>
      <route>
        <from uri="file:/my/path?fileName=myFilename.txt&amp;noop=true&amp;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}&amp;noop=true&amp;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和文件组件)。