【SpringBoot】多种环境自由切换,只需要配置文件这么写

【SpringBoot】2、SpringBoot中配置文件详解 SpringBoot使用一个全局的配置文件,配置文件名是固定的,支持两种格式 1、两种格式(properties,yml) application.properties application.yml 由此可以看出 application.yml 文件格式的内容更为简洁,清晰,目前大部分都是 YML 格式,我们主要讲 YML 格式的配置文件 注意: 1、以空格的缩进来控制层级关系,左对齐的一列... 阅读详情

yml配置文件很好用,但是实际生产中会有很多问题。

  1. 测试是一套配置,生产是一套配置;不同人开发不同的模块,共用一个yml文件容易发生冲突;
  2. 本地开发需要本地化配置调试,本节咱们就把这些头疼的问题统统解决掉。

首先我们建立一个工程,将application.properties文件后缀改成application.yml。

name: 张三
lesson: springboot
desc: ${name}同学正在努力学习${lesson}!!! #占位符
DemoController.java
@RestController
@RequestMapping("demo")
public class DemoController {

    @Resource
    private YmlData ymlData;

    @GetMapping("test")
    public void test() throws JsonProcessingException {
        System.out.println(ymlData.getDesc());
    }
}
YmlData.java
@Data
@Component
public class YmlData {

    @Value("${name}")
    private String name;
    @Value("${lesson}")
    private String lesson;
    @Value("${desc}")
    private String desc;
}

浏览器请求下http://localhost:8080/demo/test 看看控制台,乱码

设置编码格式,ide-->file-->setting-->editor-->file encodings

设置完成后application.yml彻底乱码了,重新输入,改完重启,再请求一次,控制台输出:

张三正在努力学习springboot!!!
这些跟多环境配置有什么关系?

嗯,是没关系,但是你多学了一个yml文件占位符,且我们下面的示例也会根据这个变更。图片

application-prod.yml

name: 张三prod
lesson: springboot
desc: ${name}正在努力学习${lesson}!!!

application-dev.yml

name: 张三dev
lesson: springboot
desc: ${name}正在努力学习${lesson}!!!

application.yml

spring:
  profiles:
    active: dev #多环境变量的精髓,这里确定是加载哪个配置文件!!!

好了,现在重启,在执行一次请求,控制台输出的是什么?

张三dev正在努力学习springboot!!!

那在调试的时候是否可以选择加载哪个配置文件呢?,按下图所示操作

重启,看看现在打印的是什么?

张三prod正在努力学习springboot!!!

再增加一个application-test.yml

name: 张三test

修改application.yml如下:

spring:
  profiles:
    include: test,prod #包含哪些配置
    active: dev #多环境变量的精髓,这里确定是加载哪个配置文件!!!

重新启动工程看看打印出来什么?

张三prod正在努力学习springboot!!!

从结果我们可以看出,包含了include在内的配置,且相同配置在include的文件中使用的最后一个生效的。

而active文件中即使具有相同的配置(本文中的name配置)也没有被覆盖,另外include中包含的配置文件没有的配置,会在active中补充上来。

总结来说:include和active取并集,相同的配置以include中的最后一个为准!

php环境配置自己写的 文档 php环境配置自己写文档 大家一起分享吧 立即下载

相关推荐

GEO数据挖掘实战:用R语言从GSE42872数据集中找到关键差异基因(附完整代码)

本文详细介绍了使用R语言从GSE42872数据集中挖掘关键差异基因的完整流程,包括数据下载、探针ID转换、差异表达分析和功能富集分析。通过实战代码演示,帮助生信研究者掌握GEO数据挖掘的核心技术,快速识别疾病相关基因并理解其生物学功能。

weixin_42625070的博客 365

环境配置文档撰写指南

软件开发与部署过程中,环境配置文档是保障系统稳定运行的基础设施。它不仅是开发、测试、运维团队的协作基石,更是系统从开发到生产环境平滑迁移的关键

1533

从Reset到Read:深入解析Rolling Shutter曝光流水线

本文深入解析Rolling Shutter(卷帘曝光)的工作原理,重点探讨Reset和Read信号在图像传感器中的关键作用。通过Reset-Read流水线机制,详细解释了曝光控制、时序调优及运动伪影补偿等核心技术,帮助读者理解卷帘曝光在高速摄影和动态场景中的应用。

weixin_42531925的博客 254

开发环境配置文档

1.开发环境及工具说明 tomcat 8.5(我的项目使用低于该版本会报错,请使用8.0以上版本) Maven 3.5 jdk 1.8以上 mysql 5.7(使用mysql8.0以上需更改连接字符串和jar包) Navicat for mysql (数据库管理工具) eclipse (尽量使用高版本,低版本没有maven,使用IDEA的自行百度配置) 请注意所有的目录中不要含有中文字符,尤其配置虚拟路径和项目存放位置 压缩包解压即...

奔跑的程序员的博客 5545

VUE3 实战手记(一)集成 EasyUI for Vue 组件库

本文详细介绍了如何在VUE3项目中集成EasyUI for Vue组件库,包括环境准备、基础安装、配置与集成、TypeScript类型问题解决以及组件实战等内容。EasyUI以其轻量级和开箱即用的特性,特别适合快速开发后台管理系统,提升开发效率。

weixin_30628801的博客 531

信贷风控实战指南:Vintage分析表从数据建模到风险洞察

本文是一份信贷风控实战指南,详细阐述了Vintage分析从数据建模到风险洞察的全流程。文章深入解析了Vintage分析作为信贷资产“体检报告”的核心价值,并提供了从借据表与还款计划表设计、账龄计算、逾期口径判定到风险暴露计算与最终可视化透视的完整SQL实现方案,旨在帮助风控从业者构建精准的风险监控体系。

nft7creator的博客 321

配置文件这样写,多环境自由切换

在之前的章节中我们讲过yml配置文件,小伙伴们还记得吗?很好用,但是实际生产中会有很多问题。 测试是一套配置,生产是一套配置;不同人开发不同的模块,共用一个yml文件容易发生冲突; 本地开发需要本地化配置调试,本节咱们就把这些头疼的问题统统解决掉。 首先我们建立一个工程,将application.properties文件后缀改成application.yml。 name: 张三 lesson: springboot desc: ${name}同学正在努力学习${lesson}!!! #占位符 .

dashengjava的博客 215

第四节:Vben Admin登录对接后端getUserInfo接口

上一节,我们完成了/api/auth/login接口的创建,通过login接口,我们完成了登录和Token的生成。但是登陆还是报404返回,发现是Vben Admin又请求了一个/api/getUserInfo接口,本节我们就来分析完成这个接口本节,我们完成了getUserInfo接口,完成了登录操作,成功的进入到工作台页面。

cuiwin的专栏 2846

springboot项目jar包如何切换配置文件?

在日常开发中同一个项目经常要切换不同的环境进行测试,如果每一次切换环境都需要重新打包上传则非常影响开发效率,那有什么好的的方法可以迅速切换? 不同的环境就意味着我们需要不同的配置文件,springboot如何制定多个配置文件并能在项目上切换使用? 我们需要一个application.yml配置文件和各个环境对应的配置文件,原则是一个环境对应一个配置文件,文件的命名方法是:application-{环境名}.yml ,例如:application-test.yml 准备好配置文件后如何指定运行哪个配

qq_20446879的博客 1176

python语言字符串练习题

描述:find()方法检测字符串中是否包含子字符串str,如果指定 beg(开始)和end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串,返回字符串中,子字符串第一个字符的索引值,否则返回-1。描述:find()方法用来检测字符串中是否包含子字符串str,在指定范围内,如果包含子字符串,返回字符串中,子字符串第一个字符的位置,否则返回-1。命令行先后输入两个字符串,然后利用find()方法找出第二个字符串在第一个字符串中出现的位置。本关需要你编写一个程序,输出字符串的长度。

国家一级致癌物 2026

使用xlwings在Python中对Excel表格进行操作是非常方便的,可以实现自动化处理、批量数据处理等功能

使用xlwings在Python中对Excel表格进行操作是非常方便的,可以实现自动化处理、批量数据处理等功能。本篇文章主要介绍如何使用xlwings对Excel表格进行多行多列数据设置和操作,并给出相应的源代码。接着,我们可以对这个范围内的所有单元格进行操作,如设置字体颜色、填充颜色、对齐方式等。以上就是使用xlwings对Excel表格进行多行多列数据操作和设置字体颜色、填充色和对齐方式的全部内容。最后,我们可以将数据写入到单元格中,也可以从单元格中读取数据。在Excel中,可以通过。

BUG?不存在的! 713

一文带你实现SpringBoot多配置文件实现环境动态切换(prod、dev、test)

在日常开发中,我们可能经常会碰到要调试代码或者切换到线上环境去查看问题。 在没有配置环境切换的情况下,我们需要来回修改各种配置地址,例如 MySQL、Redis。。。等等 所以,当你看完本文,你可以学到如何对一个SpringBoot单体项目进行改造,实现dev、prod、test环境的动态切换。

weixin_44048876的博客 8063

[PCIe5.0] 5.3.1.4.2 D3Cold State

主电源(Vcc)完全断开,仅保留极少量辅助电源(Vaux)用于维持基本唤醒功能设备功能完全关闭,所有寄存器状态丢失(除非有特殊存储)需要完全重新初始化才能恢复工作比D3Hot状态功耗更低,但唤醒延迟更长。

系统固件工程师 453

【SpringBoot】多环境切换的灵活配置

灵活使用环境变量启用不同的 profile灵活使用 spring.profiles.include 激活多个配置最后 application.properties 和 application.yml 是一样的使用方法如果你使用 nacos 也可以实现同样的效果,但是需要引入中间件,不推荐。

阿Q的小窝 5244

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

基于maven的springboot多环境yml配置文件切换与隔离

在实际开发过程中,我们经常需要面对开发环境、测试环境与生产环境进行yml配置文件的切换,使用注释切换与手工替换的方式效率较低;且不同环境下的配置需求也经常不一样,这样会造成少改、漏改和错改的问题。为解决这个问题,我们可以借助maven的profile进行多环境的配置文件切换,本文将介绍基于maven的springboot多环境yml配置文件切换的配置步骤。 注:开发环境-dev,测试环境-t...

TanzJ的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

SpringBoot 多环境配置文件切换

多环境配置文件切换

南国以南i的博客 3085

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【Springboot】yaml配置文件&多环境切换

YAML是 "YAML Ain't a Markup Language" (YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)yaml语言以数据作为中心,而不是以标记语言为重点!传统xml配置yaml配置server:port: 8080。

CCChloe的博客 3562

SpringBoot配置文件(Profile)环境切换

SpringBoot的配置文件切换 Why? 在家和学校的服务器不一样,有时候需要来回切换配置 数据库ip、端口 程序运行端口 redis ip 和端口 很麻烦 如下 我们不同的环境下的配置文件中 person.name不同 ,需要更改 内部配置文件 两个原始配置文件: 任何时候都会加载 application.properties application.yaml 指定环境配置文件 我们可以按照需要指定很多个环境 如:生产环境product、测试环境test、公司环境、家庭环境 命名规则:app

qq_44220795的博客 2591

springboot开发环境生产环境配置文件切换

在application.yml配置文件中添加如下信息 server: port: 8081 spring: profiles: active: prod #激活prod生产环境 --- server: port: 8083 spring: profiles: dev --- server: port: 8084 spring: profiles: prod 或者修改idea里面的启动参数设置 idea在启动的时候会优先加载这里面设置的参数内容 ...

u014496893的博客 2342

SpringBoot 中 properties、yml 配置文件的多环境切换

这里写目录标题多环境切换1、properties 配置文件的 多环境切换2、yml 配置文件的 多环境切换**注意:如果yml和properties同时都配置了端口,并且没有激活其他环境 , 默认会使用properties配置文件的!(在配置文件的位置在一个地方的情况下,因为,在不同的位置,配置文件有不同的优先级。)**参考目录 多环境切换 profile是Spring对不同环境提供不同配置功能的支持,可以通过激活不同的环境版本,实现快速切换环境; 1、properties 配置文件的 多环境切换 我们在主

norang的博客 1529

SpringBoot多环境配置文件切换

Spring Boot多环境配置管理方案:通过application.yml、application-dev.yml和application-prod.yml实现环境隔离。在pom.xml中定义dev和prod两个profile,利用spring.profiles.active=${package.environment}动态激活对应配置。开发时通过Maven面板选择profile(dev/prod),执行clean-install后启动应用即可自动加载相应环境的数据库等配置。测试接口/test可验证当前生

打代码是一天,不打代码也是一天 784

SpringBoot yml配置文件切换

通过。

qq_36094347的博客 1222

SpringBoot --多环境配置文件动态切换

多环境配置 ​ 在项目实际开发过程中,可能会有不同的环境,例如开发环境,测试环境和生产环境。不同的环境,对应的配置信息是不同的,将项目发布到不同的环境,需要去更改对应环境的配置信息,如果每次都是手动去更改环境,非常不友好,且容易漏掉配置,如果能够实现不同环境的自动识别,动态切换,将极大的提高工作效率。下面介绍一下自己在工作中使用到的多环境配置方法。 环境变量控制 ​ SpringBoot打包服务时,一些参数需要从外界获取,可以通过在配置文件中配置环境变量实现: spring: datasource:

基地的博客 2139

Springboot多环境配置文件

前言 谈到springboot,我们反复提到了"约定大于配置"。简单的说,当你引入stater-web,也就是说当你需要使用web模块的时候,springboot就默认觉得你要用到tomcat、spring mvc等,同时他也默认觉得你要用的端口就是8080,因此帮你在配置文件上默认写了8080 在SpringBoot中,约定大于配置可以从以下两个方面来理解: ① 开发人员仅需规定应用中不符合约...

bugpool的博客 2072
上一篇: 号称“不限速“的阿里网盘,官宣要停止了,寿命仅仅1年
下一篇: Redis中一个String类型引发的惨案
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值