Spring Cloud Data Flow Server application.properties将被忽略

问题描述 投票:1回答:1

只是试用Spring Cloud Stream和SCDF,看起来很简单(就像Spring一样)。然而,偶然发现了什么。我有application.properties,它有以下条目。这是一个处理器应用程序。

spring.cloud.stream.bindings.input.destination=work.in
spring.cloud.stream.bindings.input.contentType=text/plain
spring.cloud.stream.bindings.input.binder=rabbit
spring.cloud.stream.bindings.input.group=testgroup
spring.cloud.stream.bindings.output.destination=work.out
spring.cloud.stream.bindings.output.contentType=text/plain
spring.cloud.stream.bindings.output.binder=rabbit
spring.cloud.stream.bindings.output.group=testgroup

当我将它作为一个独立的jar运行时(就像另一个Spring启动应用程序一样),它尊重application.properties并且所有工作都按预期工作。

当我使用SCDF创建流时,它会忽略属性并使用约定stream_name.app_name创建交换,这不是我想要的。

我希望在某些时候,我希望这些应用程序与spring-cloud配置服务器集成,我可以完全外部化来自不同来源的配置。

有人可以建议我缺少什么,以便使SCDF获取我的application.properties并使SCDF与Spring Cloud Config Server一起使用(这应该是我的理解)?任何指针都将非常感谢,谢谢。

spring-cloud spring-cloud-stream spring-cloud-config spring-cloud-dataflow
1个回答
1
投票

默认情况下,Spring Cloud Stream绑定属性由SCDF在内部设置,具有您在上面提到的约定。

您在应用程序级别定义的application.properties具有最低优先级,因此它们被SCDF设置的内容覆盖。

要覆盖SCDF设置的这些属性,您需要通过流deployment属性传递新属性。您可以参考此here的文档

如果您使用Spring Cloud Config服务器来提供外部化属性,我相信那些只能用作流definition属性,而不能用于我们传递的覆盖Spring Cloud Stream绑定属性的deployment属性。

© www.soinside.com 2019 - 2024. All rights reserved.