Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >这波啊~这波是多环境配置

这波啊~这波是多环境配置

作者头像
java技术爱好者
发布于 2021-11-19 08:03:28
发布于 2021-11-19 08:03:28
55200
代码可运行
举报
文章被收录于专栏:java技术爱好者java技术爱好者
运行总次数:0
代码可运行

文章已收录到我的Github精选,欢迎Star:https://github.com/yehongzhi/learningSummary

前言

一般来说,在日常开发中都会分多个环境,比如git代码分支会分为dev(开发)、release(测试)、pord(生产)等多个环境。可以说每个环境对应的配置信息(比如数据库、缓存、消息队列MQ等)都不相同。因此不同的环境肯定需要对应不同的配置文件。接下来学习一下怎么配置多环境的配置文件。

SpringBoot多环境配置

因为SpringBoot做多环境配置比较简单,而且现在大部分项目基本都会使用SpringBoot,所以这里就介绍怎么用SpringBoot做多环境配置。

单文件版本

单文件在实际中使用得并不多,不过也可以实现多环境配置,这里简单介绍一下。以application.yml配置文件举例,你要在一个配置文件里面配置多个环境的配置,肯定需要分割线将其隔开,所以SpringBoot就规定了使用---进行隔开每个环境。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spring:
  application:
    name: mydemo
  profiles:
    active: prod # 选择prod环境配置
#整合mybatis
mybatis-plus:
  mapper-locations: classpath:mapper/*Mapper.xml
  type-aliases-package: com.yehongzhi.mydemo.model
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
---
# 开发环境
server:
  port: 8080
spring:
  profiles: dev
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://DEV_IP:3306/user?createDatabaseIfNotExist=true
    username: root
    password: 123456
---
# 测试环境
server:
  port: 8090
spring:
  profiles: release
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://RELEASE_IP:3306/user?createDatabaseIfNotExist=true
    username: root
    password: 123456
---
# 生产环境
server:
  port: 8888
spring:
  profiles: prod
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://PROD_IP:3306/user?createDatabaseIfNotExist=true
    username: root
    password: 123456

单文件配置多环境的缺点很明显,就是会导致这个application.yml文件非常大,不够清晰。最好是一个环境单独一个文件,这样就清晰很多。于是乎就有了多文件版本。

多文件版本

一般SpringBoot的配置文件都是叫application.yml或者application.properties,这里用application.yml举例,配置多环境配置文件,文件名需要满足这样的格式:application-{profile}.yml。看下图就明白了。

换而言之,dev环境的配置文件就叫做application-dev.yml,那么怎么选择哪个环境的配置文件呢,其实很简单,只需要在application.yml加上如下配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spring:
  profiles:
    active: dev

这就表示选择加载application-dev.yml文件,何以见得?

一般在启动完成之后,我们可以在控制台搜索关键字profiles找到对应的环境。

所以我们就可以在application.yml里面,通过spring.profiles.active切换不同的环境。这就是多文件版本。

但是我们在平时开发时发现,这个配置要经常改来改去,非常麻烦,有没有不用改这个配置就可以切换的方法呢?当然有。

首先在pom.xml文件增加以下环境变量的配置。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<profiles>
    <profile><!-- 开发环境 -->
        <id>dev</id>
        <properties>
            <profiles.active>dev</profiles.active>
        </properties>
    </profile>
    <profile><!-- 测试环境 -->
        <id>release</id>
        <properties>
            <profiles.active>release</profiles.active>
        </properties>
    </profile>
    <profile><!-- 生产环境 -->
        <id>prod</id>
        <properties>
            <profiles.active>prod</profiles.active>
        </properties>
    </profile>
</profiles>

接着在application.yml配置文件中使用@profiles.active@来配置环境变量。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spring:
  profiles:
    active: '@profiles.active@'

接着刷新Maven,可以在IDEA右侧中选择对应的环境,如下图:

当需要切换环境时,就不需要改配置文件的内容,只需要勾选对应的环境即可,就方便很多。

结合Nacos配置中心

一般在项目开发中,都需要配置信息能够在运行时更改配置,于是乎就有了配置中心的概念。配置中心当然也有多环境的配置。

在Nacos配置中心就有命名空间的概念,我们可以使用命名空间来实现多环境配置。首先引入Maven依赖:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependencies>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        <version>2.0.2.RELEASE</version>
    </dependency>
</dependencies>
<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <profiles.active>dev</profiles.active>
        </properties>
    </profile>
    <profile>
        <id>release</id>
        <properties>
            <profiles.active>release</profiles.active>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <profiles.active>prod</profiles.active>
        </properties>
    </profile>
</profiles>

第二步,启动Nacos,然后在创建对应的命名空间和配置文件。

第三步,在项目中增加bootstrap.yml文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spring:
  application:
    name: mydemo
  profiles:
    active: '@profiles.active@'
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
        group: DEFAULT_GROUP
        namespace: a4a33d52-371b-451a-a3c1-d01c1d343331 #dev命名空间的ID
        enabled: true
        prefix: ${spring.application.name}
        refresh-enabled: true

在IDEA配置项目启动时设置环境变量。

这样就完成了,启动项目,就可以读到Nacos配置中心的dev命名空间的mydemo-dev.yaml文件。

因为DataId的定义规则是{prefix}-{spring.profiles.active}.

prefix默认规则是获取${spring.application.name}的值。可以通过spring.cloud.nacos.config.prefix进行配置。 spring.profiles.active即为当前环境对应的profile。可以通过spring.profiles.active进行配置。 file-extension为配置文件的数据格式。可以通过spring.cloud.nacos.config.file-extension进行配置。

总结

以上就是多环境配置的三种方式,多环境配置基本上是创建新项目的基本操作,所以掌握多环境配置还是很有必要的。感谢大家的阅读,希望看完之后能对你有所收获。

觉得有用就点个赞吧,你的点赞是我创作的最大动力~

我是一个努力让大家记住的程序员。我们下期再见!!!

能力有限,如果有什么错误或者不当之处,请大家批评指正,一起学习交流!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java技术爱好者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Spring boot Nacos系列教程】Nacos第三篇:多环境配置
在实际开发过程中,我们会有多个多个环境。比如:dev、test、release、pro等不同的环境。那么在不同环境下,nacos是怎么配置的?
凯哥Java
2022/12/16
2.4K0
【Spring boot Nacos系列教程】Nacos第三篇:多环境配置
Spring boot使用Maven Profile配合Spring Profile进行多环境配置和打包
但是用了Maven Profile之后,我打包就不用每次都改application.yml文件了
ydymz
2021/01/05
3.3K1
Spring boot使用Maven Profile配合Spring Profile进行多环境配置和打包
前后端多环境配置
介绍一下前后端的多环境配置,前端使用的 Vue 框架,后端使用的是 SpringBoot 框架。
wsuo
2021/01/05
6250
前后端多环境配置
【Spring Boot】006-多环境配置及配置文件位置
我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml , 用来指定多个环境版本;
訾博ZiBo
2025/01/06
1550
【Spring Boot】006-多环境配置及配置文件位置
SpringBoot多环境配置,旧的已过时,新的有人还不知道
如果你使用Spring Boot 2.4及以上版本,你会发现Spring Boot中对多环境支持的配置项spring.profiles.active已经被废弃。而Spring Boot也一直在逐步推新的配置方式,可能很多人还不知道,本文就带大家一探究竟。
程序新视界
2021/12/07
3.6K0
「快学springboot」SpringBoot多环境配置文件
我们都知道springboot的配置卸载application.properties配置文件上(或者application.yml)。但是,如果想要把不同的环境(如开发环境,测试环境,生产环境)的配置文件分离,这要怎么做呢?其实,SpringBoot是支持指定不同的配置文件的。
Happyjava
2024/02/01
3070
「快学springboot」SpringBoot多环境配置文件
Springboot与Maven多环境配置文件夹解决方案
?原文地址为https://www.cnblogs.com/haixiang/p/12451703.html,转载请注明出处! Profile用法 我们在application.yml中为jdbc.u
海向
2020/03/11
1.8K0
「快学springboot」SpringBoot多环境配置文件
我们都知道springboot的配置卸载application.properties配置文件上(或者application.yml)。但是,如果想要把不同的环境(如开发环境,测试环境,生产环境)的配置文件分离,这要怎么做呢?其实,SpringBoot是支持指定不同的配置文件的。
Happyjava
2019/07/16
9100
「快学springboot」SpringBoot多环境配置文件
Springboot多环境配置及使用
软件开发中经常有开发环境、测试环境、生产环境,而且一般这些环境配置会各不相同,手动改配置麻烦且容易出错,如何管理不同环境的配置参数呢?spring-boot + maven可以解决不同环境独立配置不同参数的问题。
I Teach You 我教你
2023/07/18
3590
SpringBoot系列之profles配置多环境(篇二)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
SmileNicky
2019/11/12
4550
实战!3分钟搞定Spring Boot 多环境配置
在实际项目开发的过程中,需要面对不同的运行环境,比如开发环境、测试环境、生产环境等,每个运行环境的数据库、Redis服务器等配置都不相同,每次发布测试、更新生产都需要手动修改相关系统配置。这种方式特别麻烦,费时费力,而且出错的概率极大。庆幸的是,Spring Boot为我们提供了更加简单方便的配置方案来解决多环境的配置问题,下面就来演示Spring Boot系统如何实现多环境配置。
章为忠学架构
2023/03/23
3.3K0
实战!3分钟搞定Spring Boot 多环境配置
嗯,挺全乎儿的,Spring Boot 多环境配置都在这里了,你喜欢哪种?
日常开发中至少有三个环境,分别是开发环境(dev),测试环境(test),生产环境(prod)。
huofo
2022/03/16
1.9K0
嗯,挺全乎儿的,Spring Boot 多环境配置都在这里了,你喜欢哪种?
【SpringBoot系列】配置多环境配置文件
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linzhiqiang0316/article/details/81541115
林老师带你学编程
2019/05/25
7590
SpringBoot Profile 多环境配置
多配置文件配置(properties): 格式: applicatino-{profile}.properties
前端小鑫同学
2022/12/24
2720
走进Java接口测试之多环境配置
在日常开发过程中,我们都会有多套开发环境,比如:开发、测试、生产等不同的应用环境,这些应用环境都对应不同的配置项,包括不同环境数据库地址、端口号等都是不尽相同的,要是没有多环境的自由切换,部署起来是很繁琐也容易出错的。本文主要介绍在 SpringBoot 项目中如何进行多环境配置的方法。
玖柒的小窝
2021/09/19
7530
SpringBoot 多环境打包配置
实际开发中,应用程序通常需要部署到不同的运行环境中,例如 开发环境、测试环境、生产环境等。
默存
2023/11/20
9260
SpringBoot 多环境打包配置
SpringBoot基础篇配置信息之多环境配置信息
前面一篇主要介绍的是如何获取配置信息,接下来则是另外一个非常非常基础和必要的知识点了,应用如何根据不同的环境来选择对应的配置,即配置的多环境选择问题
一灰灰blog
2019/03/14
1.3K0
SpringBoot基础篇配置信息之多环境配置信息
SpringBoot基础篇配置信息之多环境配置信息
配置区分环境,最直观的如测试环境和生产环境的DB不同,测试环境的应用要求连接测试DB;生成环境的应用要求连生成DB;对于应用本身来说,业务代码啥的都是一样,无非就是DB的配置不同,如果在代码中写死环境判断,然后进行选择配置话,就不太优雅了;
一灰灰blog
2019/05/26
9600
SpringBoot实现多环境配置
1.为什么需要配置多环境配置 在实际的开发中,我们往往需要在不同的环境中使用不同的数据库、缓存配置,如果使用同一套配置文件,在不同环境部署的时候手动去修改配置文件,会使部署变得很繁琐。使用多环境配置文件可以很方便的实现此功能。 1.创建不同环境的配置文件 在resource文件夹中添加一下配置文件: application-dev.properties //开发环境配置文件 application-rc.properties //线上环境配置文件 application-test.properties //
代码改变世界-coding
2018/07/03
1.1K0
Spring注解@Profile实现开发环境,测试环境,生产环境的切换
application.yml内容如下,里面主要放的是公共的配置,比如项目的名称啊,端口啊这些,使用spring.profiles.active = dev/test/prod切换不同的环境。
小四的技术之旅
2022/07/26
9240
Spring注解@Profile实现开发环境,测试环境,生产环境的切换
相关推荐
【Spring boot Nacos系列教程】Nacos第三篇:多环境配置
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验