ApacheCamel-从yaml属性中移动带有uri的文件



我正在尝试使用Apache Camel处理一个文件,并在处理后将其移动到特定的文件夹,同时保留文件名和目录结构。

我在application.yml文件中的内容:

camel-from: "file:/C:/in/received?move=../in/processed/${file:name}&recursive=true&readLock=changed&readLockMarkerFile=false&delay=1000&maxDepth=2&minDepth=2"

使用Java的路线如下:

@Component
@RequiredArgsConstructor
public class TestRoute extends RouteBuilder {
@Value("${camel-from}")
private String fromUri;
@Override
public final void configure() {
from(fromUri)
// rest of code
}
}

如果我直接在from的路由中使用字符串,它会很好地工作。然而,从application.yml文件中读取它,无论我试图转义哪些字符,我都无法让它正确读取uri。(我总是会出现错误,或者创建像processed/name这样的文件夹,而不是解释${file:name}(。

有什么想法吗?

感谢

属性替换需要用SPEL语言进行转义,所以Apache Camel会以原始形式获取值。您可以用#{'$'}进行转义。关于缩短/更直观的转义序列,有一个公开发行的spring框架#9628。

camel-from: "file:/C:/in/received?move=../in/processed/#{'$'}{file:name}"

最新更新