【发布时间】:2022-01-18 11:38:34
【问题描述】:
我有路线
from("direct:standardLetter")
.toD("file://standardReceived?fileName=${header.filename}");
我想把我的 uris 放在 YAML 中。 但是我放的时候有问题
from("direct:standardLetter") .toD("{{endpoints.writer-routes.out.standard-output-file.uri}}")
在这样的 YAML 文件中
endpoints:
writer-routes:
out:
standard-output-file:
id: "standard-output-file"
uri: "file://standardReceived?fileName=${header.filename}"
如何克服这个问题?
【问题讨论】:
-
Documentation 没有说明能够使用带有属性占位符的 yaml 文件。取而代之的是使用.properties 文件。这是否与yaml-dsl、camel-k 或其他相关?
-
问题是 springboot 在启动时想要解析属性以将它们注入应用程序。请记住启动应用程序需要属性/yaml 值。因此,它们在应用程序运行之前就已解决。但是 header.filename "property" 仅在骆驼运行时可用,该值是交换的属性,仅在路由运行时可用。因此它不会正确翻译,因为在启动期间没有交换,因为骆驼还没有执行。您不能像这样从属性/yaml 文件中引用运行时值。
标签: yaml apache-camel placeholder