可以在春季引导中结合使用自动配置和活动配置文件吗?

时间:2018-08-22 05:56:00

标签: spring-boot spring-config

我的问题是关于Spring Boot的自动配置,以及是否可以根据激活的配置文件设置默认属性值。

有时,许多微服务都添加了相同的属性。例如,如果我们依靠一个招摇的客户。然后,需要在所有使用该客户端的项目中设置所有不同环境的端点URL。如果我们可以在该客户端的starterproject中进行设置,那就太好了。然后只有一个地方需要维护。

但是该属性并非在所有环境中都相同,因此应该可以在每个环境中使用默认值。有最好的方法吗?

1 个答案:

答案 0 :(得分:1)

如果您正在使用Spring Cloud Config服务,则可以通过以下方式安排配置:

src/main/resources/
    bootstrap.yml
    bootstrap-profile1.yml
    bootstrap-profile2.yml
    ...
src/main/resources/profile1/
        application.yml
        service1.yml
        service2.yml
        ....
src/main/resources/profile2/
        application.yml
        service1.yml
        service2.yml
        ....  

每个配置文件文件夹中的application.yml将具有每个服务的默认配置,这些配置可以在该服务的配置文件中覆盖。

bootstrap.yml如下所示:

spring:
  application:
    name: config-service
  cloud:
    config:
      server:
        native:
          search-locations: classpath:/profile1,classpath:/profile2,...
  profiles:
    active: native,${CONFIG_ENV}