环境与配置
环境定义
每套系统都要经过开发、测试、准生产、性能测试等阶段,需要定义一套标准。具体见基本开发规范
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中携带环境标识