在程序开发,部署中,我们总要切换不同的环境,比如开发环境,测试环境,生成环境,或者预发布环境,如果每次都手动一个一个去改配置,重复劳动,耗费时间不说,还极有可能修改错误,那有没有好的方法切换不同环境的配置呢?在使用springboot框架开发系统,框架已经拥有切换环境配置的功能.我们需要在application.properties中,作为配置功能的总入口,如下:

spring.profiles.active=devspring.application.name=demo

然后建立新的配置文件通过配置 spring.profiles.active,系统根据你的配置,自动从application-dev.properties,或者application-test.properties读取配置,实现了多环境的切换.但这只是服务器读取本地配置时的操作,当我们系统分布式部署,需要配置集中管理时,如何实现多环境的切换呢?现在以阿里的nacos为例,介绍一下本人的使用心得.请自行搭建nacos服务.pom文件如下:

xml version="1.0" encoding="UTF-8"?><project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xmlns="http://maven.apache.org/POM/4.0.0"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0modelVersion><groupId>comgroupId><artifactId>demoartifactId><version>1.0version><properties><project.build.sourceEncoding>UTF-8project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding><java.version>1.8java.version><nacos.version>2.2.1.RELEASEnacos.version><nacos.client.version>1.3.0nacos.client.version>properties><dependencies><dependency><groupId>com.alibaba.cloudgroupId><artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId><version>${nacos.version}version><exclusions><exclusion><artifactId>httpclientartifactId><groupId>org.apache.httpcomponentsgroupId>exclusion><exclusion><artifactId>jackson-coreartifactId><groupId>com.fasterxml.jackson.coregroupId>exclusion>exclusions>dependency>        <dependency><groupId>com.alibaba.cloudgroupId><artifactId>spring-cloud-starter-alibaba-nacos-configartifactId><version>${nacos.version}version>dependency>        <dependency><groupId>com.alibaba.cloudgroupId><artifactId>spring-cloud-starter-alibaba-sentinelartifactId><version>${nacos.version}version>dependency>dependencies>project>

bootstrap.yml如下:

# Springspring:  application:    # 应用名称    name: demo  profiles:    # 环境配置    active: dev  cloud:    nacos:      discovery:        # 服务注册地址        server-addr: 192.168.5.80:8848        # 服务注册在哪个命名空间 一般通过这个,去选择使用dev ,test 或者 prd环境        # 通过命名空间可使 配置互不干扰        namespace: ${spring.profiles.active}        # 服务注册在哪个组里面 此处配置 可通过nacos 服务管理-服务列表 选择组 查看某服务的实例.        # 用以区分 同一nacos里的不同项目        group: groupA     config:        # 配置中心地址        server-addr: 192.168.5.80:8848        namespace: ${spring.profiles.active}        # 配置文件格式        file-extension: yml        # 配置文件需在此处列出        shared-configs:          - dataId: conf.yml            group: groupA            refresh: true

此时,我们只需在本地修改spring.profiles.active 即可控制系统读取的环境配置.修改pring.cloud.nacos.config.shared-configs 里的 dataId和group 即可指定读取的配置.举例:在nacos分别配置dev,test命名空间,并分别建立 group为groupA的conf.yml,group为groupB的conf.,并设置key student.name.(字段值自行配置),在程序中读取并打印字段值.情景1:同一项目的不同环境配置配置:    spring.profiles.active=devspring.cloud.nacos.config.shared-configs[0].group=groupAspring.cloud.nacos.config.shared-configs[0].dataId=conf.yml结果:    值:dev-groupA配置:    spring.profiles.active=testspring.cloud.nacos.config.shared-configs[0].group=groupAspring.cloud.nacos.config.shared-configs[0].dataId=conf.yml结果 :     值:test-groupA情景2:不同项目的同一环境配置配置:    spring.profiles.active=devspring.cloud.nacos.config.shared-configs[0].group=groupAspring.cloud.nacos.config.shared-configs[0].dataId=conf.yml结果:    值:dev-groupA配置:    spring.profiles.active=testspring.cloud.nacos.config.shared-configs[0].group=groupBspring.cloud.nacos.config.shared-configs[0].dataId=conf.yml结果 :     值:test-groupB此时,我们已经成功的实现了多个项目共用同一个nacos,且进行了多环境配置.查看nacos服务列表:如图,此时我们可以通过筛选group进行查看自己程序的实例情况.完结.

读取nacos_使用nacos配置多环境切换相关推荐

  1. spring cloud nacos 配置多环境打包

    spring cloud nacos 配置多环境打包 一.前言 因需要将项目打包给N多第三方,他们有各自的nacos地址,又需要实现代码无侵入(配置文件存在很多版本如 application-tocd ...

  2. SpringCloudAlibaba【四】Nacos Config 多环境切换与公共配置

    背景 前面我们整合了Nacos Config,并验证了动态配置刷新的效果了,现在我们来进一步学习一下Nacos Config的多环境配置和通用环境配置相关的内容 环境 Windows10 JDK1.8 ...

  3. SpringBoot多环境动态环境切换(nacos)

    目录 1. 环境变量切换 1.1 建立各环境配置文件 1.2 设置环境变量 2. nacos配置中心动态切换 2.1 配置文件 2.2 nacos配置 2.3 启动服务 3. 同一nacos环境下服务 ...

  4. springboot 读取nacos配置的流程和数据变化实时更新机制

    一.NACOS配置如下 1.bootStrap.yaml 配置 spring:profiles:active: devapplication:name: newdaycloud:nacos:disco ...

  5. SpringCloud(若依微服务版)读取Nacos中的配置以及多个服务共享Nacos配置的使用

    场景 若依微服务版手把手教你本地搭建环境并运行前后端项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/109363303 在上 ...

  6. vuex webpack 配置_vue+webpack切换环境和打包之后服务器配置

    import axios from 'axios' import store from '../store/index' const rootUrl =process.env.API_ROOT//创建 ...

  7. linux 切换pip路径_windows环境下面如何快速配置pip环境变量

    首先我们要知道什么是pip,为什么要使用pip. pip 是一个安装和管理 Python 包的工具 , 是 easy_install 的一个替换品.本文将详细说明 安装 pip 的方法和 使用 pip ...

  8. uni-app cli创建项目打包并配置多环境读取配置文件信息

    uni-app cli创建配置多环境读取配置文件信息 在项目src下创建以下配置文件 在package.json中添加以下代码 VUE_APP_ENV:用来区分环境 NODE_ENV:用来定死打包目录 ...

  9. SpringCloud读取Nacos配置中心报错:Could not resolve placeholder ‘xxx’ in value ‘${xxx}

    hello,我是灰小猿,一个超会写bug的程序员! 近期在写一个spring cloud Alibaba读取Nacos配置中心远程配置文件的内容时,出现了几个比较坑的bug,在此记录一下,帮大家避避坑 ...

最新文章

  1. ARMCM3汇编指令
  2. 看完这篇还不会kafka,我跪榴莲!
  3. 【Python爬虫】Requests库网络爬虫实战
  4. 整活插件 炉石传说_炉石传说:国服再搞大动作?官方插件神秘新功能压力测试开启...
  5. 普通索引和唯一索引,难道还分不清
  6. java list 在头部添加6_【Java提高十六】集合List接口详解
  7. 中嵌套的页面如何操作父页面_UI设计中签到页面如何设计
  8. Ridge regression
  9. 未来的建筑行业项目管理集成系统展望
  10. docker探索-在centos6.5中安装docker(三)
  11. 12 序列化器Serializer的使用
  12. IDEA 解决 artifacts not found 问题
  13. 9个适合上班族晚上在家就能赚钱的副业推荐(建议收藏)
  14. 马克鳗标记及文字图片工具安装步骤mac版本
  15. HTML常见标签的用法
  16. hive的搭建及其入门一
  17. oracle----存储过程
  18. 转:我收到一份《中国焦虑图鉴》
  19. java simpledateformat gmt_利用SimpleDateFormat进行时间的跨时区转换 - Java
  20. python生成微信好友头像心形照片墙

热门文章

  1. python 生成器_python 生成器 - 刘江的python教程
  2. python与excel-Python与Excel 不得不说的事情
  3. python经典程序实例-你不知道的Python语言的经典五大案例
  4. python自学行吗-零基础如何学习Python?看Python视频就可以吗?
  5. 学python需要什么软件-学python需要什么软件
  6. 最专注和高效的查词法?网易有道词典笔2.0评测
  7. 长虹发布AI 3.0 引领电视行业跨入AI3.0时代
  8. linux下docker部署nginx
  9. c++ map是有序还是无序的_go 学习笔记之数组还是切片都没什么不一样
  10. c 与java性能测试_JNI只C性能测试