在多个文件中声明 Spring Cloud 函数定义属性

问题描述

有两个业务子项目使用Spring Cloud Function。它们将捆绑到一个 Spring Boot 应用程序中。是否可以在如下不同的属性文件中多次声明 spring.cloud.function.deFinition 属性

项目 A:

spring:
  cloud:
    function:
      deFinition: AProducer;AConsumer
    bindings:
      ...

项目 B:

spring:
  cloud:
    function:
      deFinition: BProducer;BConsumer
    bindings:
      ...

如果不可能,如何处理这样的用例?

解决方法

您可以使用 profile 来处理这种类型的覆盖应用程序配置属性。

如果您使用最新版本的 spring-cloud,则必须使用 spring.config.activate.on-profile

如果您使用以前版本的 spring-cloud,您可以使用 -Dspring.profiles.active=dev 了解更多信息,请访问 this link

在这两种方式中:您应该在 application-${profile-name}.properties 中有不同的文件,或者如果您使用的是 .yml 文件,您可以有包含多个配置文件的单个文件。您可以使用 --- 符号分隔不同的配置文件。