第6章-nacos实现统一配置管理:不同环境的配置切换

1,032 阅读1分钟

在Spring Boot中,可以基于spring.profiles.active实现不同环境下的配置切换,这在实际工作中用得比较多。很多公司都会有开发环境、测试环境、预生产环境、生产环境等,服务部署在不同环境下,有一些配置是不同的,所以我们希望能够通过一个属性非常方便地指定当前应用部署的环境,并根据不同的环境加载对应的配置。基于spring boot项目的多环境支持配置步骤如下:

  • 在resource目录下根据不同环境创建不同的配置。
  • application-dev.properties
  • application-test.properties
  • application-prod.properties
实际项目运用:bootstrap.yml配置

spring:
  profiles:
    active: '@spring.profiles.active@'
  application:
    name: app-center
    version: '@project.version@' # MAVEN中定义的版本号


spring:
  cloud:
    nacos:
      discovery:
        server-addr: 
        username: 
        password: 
        namespace: 
      config:
        server-addr: 
        username: 
        password: 
        namespace: 

        file-extension: yml
        sharedConfigs:
          - dataId: **-**-datasource.yml
          - dataId: redis配置
          - dataId: rocketMQ配置
          - dataId: mongodb配置

Resources目录下:

image.png

定义一个application.properties默认配置,在该配置中通过spring.profiles.active=env来指定当前使用哪个环境配置,如果{env}来指定当前使用哪个环境配置,如果{env}的值为prod,表示application-pro.properties。也可以通过设置VM options=-dspring.profiles.active=prod来指定使用的环境配置。

我们可以发现,基于Nacos Config实现不同环境的切换和本地配置的不同环境切换没有任何区别。

如果我们需要切换到测试环境,只需要修改spring.profiles.active=test即可。不过这个属性配置是写死在bootstrap.properties文件中的,修改起来显得很麻烦。通过做法:通过-Dspring.profiles.active=${profile}参数来指定环境,以达到灵活切换的目的。