gpt4 book ai didi

java - 具有动态路径的 Apache Camel 文件组件

转载 作者:行者123 更新时间:2023-12-03 09:09:33 25 4
gpt4 key购买 nike

我试图在camel文件组件中设置动态路径以避免平台特定路径。但camel不允许这样做,因为它不期望目录路径中包含$。

我想做的是设置一个VM参数,例如file.home,然后将其使用到我的文件组件中,例如

file:\${file.home}\type1

这将使我能够直接消除平台特定路径。我尝试将其外部化到属性文件中,但 Spring 不理解 Camel 特定的动态语言,例如${in.header.abc}

有人可以帮助我实现这一目标吗?

最佳答案

这些答案不正确。如果您使用 BridgePropertyPlaceholderConfigurer 和 PropertiesComponent,则可以在任何地方使用动态值。

<bean id="bridgePropertyPlaceholder" class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer">
<property name="properties">
<value>
...normal property syntax name=value - use this in test definitions
</value>
</property>
</bean>

或者在实际应用中使用类似的东西

<bean id="dummyPropertyPlaceholder" class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer">
<property name="location" value="classpath:/dummy.properties" />
</bean>

例如

    <route id="DummyRoute">
<from uri="file:{{dummy.int.dir}}?delay={{poll.delay}}&amp;initialDelay={{initial.delay}}&amp;{{readlockChanged}}&amp;move={{root}}/{{dummy.arch.dir}}/{{archive.dir}}&amp;moveFailed={{error.dir}}&amp;scheduledExecutorService=#scheduledExecutorService" />
<to uri="file:{{root}}/{{dummy.int.destination.dir}}" />
</route>

Camel 的更高版本有一个技巧:使用 $simple{file.path} 而不是 ${file.path} 这样 Spring 就不会剥离你的${} 并将裸文件.path 传递给 Camel。例如。输入“from”uri 上的移动可能如下所示:

move=archive/$simple{date:now:yyyyMMdd}/$simple{file:name}

http://camel.apache.org/how-do-i-use-spring-property-placeholder-with-camel-xml.html

http://camel.apache.org/using-propertyplaceholder.html

关于java - 具有动态路径的 Apache Camel 文件组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43886916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com