破解在idea中没法加载spring cloud config中多环境配置之谜

先简单说一下spring cloud的配置中心的一些概念git

Spring-cloud Config Server 有多种种配置方式,github

一、config 默认Git加载
经过spring.cloud.config.server.git.uri指定配置信息存储的git地址,好比:https://github.com/xxx/config-repospring

二、加载本地开发环境
spring.profiles.active=native
spring.cloud.config.server.native.searchLocations=classpath:/config
因此我如今的配置大体以下(yml)windows

spring:
  application:
    name: config-center
  profiles:
    active: native
  cloud:
    config:
      server:
        native:
          searchLocations: classpath:/configs/{profile}
#          searchLocations: file:/d:/configs/{profile}
        git:
          uri: https://xx.com/xxx/cloud-service-configs.git
          default-label: master
          force-pull: true
          searchPaths: '{profile}'

由于配置了active: native,因此这里是使用本地配置的app

咱们这里有一个configs.dev的目录ide

而具体的微服务须要作以下配置来获取dev目录下的配置(以productprovider微服务为例)微服务

spring:
  application:
    name: productprovider
  cloud:
    config:
      discovery:
        enabled: true
        serviceId: config-center
      profile: dev

 

要进行多环境配置,好比咱们要创建一个local的配置spa

若是咱们这样创建一个文件夹的话3d

其结果是真的创建了一个configs.local的单一文件夹,而不是在configs文件夹下面创建一个local文件夹。server

在这里windows,mac下面的状况都同样,因此正确的作法是进入configs目录下,手工创建一个local的文件夹(windows请在资源管理器下操做)

将你须要的配置文件拷贝到该local目录下进行修改,再修改要启动的微服务的配置

spring:
  application:
    name: productprovider
  cloud:
    config:
      discovery:
        enabled: true
        serviceId: config-center
#      profile: dev
      profile: local

就能够在多配置环境下使用配置中心了。

相关文章
相关标签/搜索