环境与配置

环境定义

每套系统都要经过开发、测试、准生产、性能测试等阶段,需要定义一套标准。具体见基本开发规范

POM配置

在parent模块中定义了环境

    <profiles>
        <profile>
            <id>local</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <profile.active>local</profile.active>
            </properties>
        </profile>
        <profile>
            <id>dev</id>
            <properties>
                <profile.active>dev</profile.active>
            </properties>
        </profile>
        <profile>
            <id>stg</id>
            <properties>
                <profile.active>stg</profile.active>
            </properties>
        </profile>
        <profile>
            <id>pet</id>
            <properties>
                <profile.active>pet</profile.active>
            </properties>
        </profile>
        <profile>
            <id>prd</id>
            <properties>
                <profile.active>prd</profile.active>
            </properties>
        </profile>
    </profiles>

默认激活了local环境标识,打包的时候根据需要环境加上-P标识。

配置文件

微服务模块都是基于springboot的,本地项目的配置文件建议如下:

  • bootstrap.yml

    server:
      port: 6003
    
    spring:
      profiles:
        active: @profile.active@
      application:
        name: macula-samples-service1
      cloud:
        nacos:
          username: ${nacos.username}
          password: ${nacos.password}
          config:
            server-addr: ${nacos.config.server-addr}
            namespace: ${nacos.config.namespace}
            # group:
            refresh-enabled: true
            file-extension: yml
    
    # 和环境有关的配置信息,不同环境覆盖此处的配置(这个是本地环境)
    nacos:
      username: nacos
      password: nacos
      config:
        server-addr: 127.0.0.1:8848
        namespace: MACULA5
    
    ---
    spring:
      config:
        activate:
          on-profile: dev
    nacos:
      username: maculav5
      #password: 请通过启动命令赋予密码
      config:
        server-addr: 10.94.108.55:8848
        namespace: MACULA5
    

    这里主要配置怎样连接配置中心,上述是以nacos配置中心为例,不同环境配置不同的配置中心

  • application.yml

    应用的配置,本地文件主要用于本机local环境配置,其他环境建议通过配置中心定义。

    如果不使用配置中心,则本地application配置需要携带环境标识,比如:application-dev.yml、application-prd.yml等

nacos配置中心

  • dataId命名建议是 ${spring.application.name}-profile.yml。这样springboot启动的时候会自动根据不同环境加载不同的配置
  • namespace按照平台或者业务线命名,用于区隔其他业务线,不要在namespace中携带环境标识