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

Spring Boot 配置还能这么玩?多环境配置管理你真的搞明白了吗? 🏆本文收录于「滚雪球学SpringBoot」专栏,手把手带你零基础入门Spring Boot,从入门到就业,助你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 阅读详情

在之前的章节中我们讲过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
image

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

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

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

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!!!

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

image

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

张三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中的最后一个为准!

更多java原创阅读:https://javawu.com

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

相关推荐

PCIe Electrical PHY(4)-PCIE SPEC第8章指标讲解

1.1 PCIE TX SPEC TX主要关心两类参数,一类是Voltage Parameters,一类是Jitter Parameters。 其中Voltage相关参数主要关心不同preset下差分电压幅度的准确性。以及共模电压的稳定性。 PCIE spec中对Jitter相关的参数测量定义如下: 分为两大类:DDJ(Data dependent Jitter)和UJ(Uncorrelated ...

maxwell2ic的博客 5953

环境配置文档撰写指南

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

1533

解码运动想象:BCI Competition IV 2a数据集实战指南

本文提供了BCI Competition IV 2a数据集的实战指南,详细解析了该经典运动想象脑电数据集的结构、文件格式与实验范式。通过MNE-Python等工具,逐步演示了从原始信号读取、预处理(通道选择、滤波、分段)到特征提取(CSP、频带功率)和模型训练(LDA、SVM)的完整流程,并强调了受试者独立评估的重要性,为BCI研究者提供了可复现的入门与进阶路径。

weixin_29304985的博客 365

开发环境配置文档

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

MS建模mmt

一、流程:1.定义好每个原子力场类型:Edit Sets(分组) 2.加H(一般是仅与Al-O八面体中的Al相连的O原子)、给H分组 3.“make P1”、校核化学式(正确与否) 4.扩成超晶胞(Na-mmt:4*1*1,Ca-mmt:4*2*1,illite:2*1*1,由化学式而定) 5.置换阳离子: mmt:模型中每 32 个 Si 4+有 1 个被 Al 3+ 取...

weixin_30721899的博客 2174

【保姆级教程/代码】使用PRIDE PPP-AR软件解算ZTD、反演GNSS PWV,并评估精度

在本算例中,我下载了BJFS站2024年的IGS ZTD产品,用于评估PRIDE PPP-AR软件解算出ZTD结果的精度。

weixin_43910227的博客 2374

spring cloud config 实现配置文件的动态刷新

1. 先构建一个配置中心,并注册到注册中心1)首先我们来构建一个配置中心,方式很简单,创建一个普通的Spring Boot项目,叫做config-server,创建好之后,添加如下依赖:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boo...

黑咖啡的博客 2万+

MIUI升级后录音神秘消失?别慌!手把手教你从Android/data目录找回宝贵录音文件

本文详细解析了MIUI升级后录音文件消失的原因,并提供了从Android/data目录找回录音文件的实用指南。通过技术分析和步骤演示,帮助小米手机用户解决录音文件丢失问题,同时分享预防措施和高级恢复方案,确保重要录音数据安全。

weixin_30696427的博客 281

Java关于Properties用法(二)——替换配置文件中的参数

Java关于Properties用法(二)——替换配置文件中的参数 上一章讲了配置文件的基本用法,虽然上一章已经可以解决一些需求,但还不些不足之处。假如,配置文件里面的字符串有一部分需要经常变动,另外一些不需要,上一章的方法就不方便了,所以这章主要讲如何在配置文件中使用参数,然后替换字符串里面的参数值。 一、使用类MessageFormat替换配置文件中的参数 Messa

Hu199055的专栏 2431

RK3588 DDR5 方案

RK3588 DDR5方案支持多种LPDDR5/LPDDR5X内存型号,包括美光、三星、海力士、江波龙和佰维等品牌。文档详细列出了已验证的DDR5内存规格,涵盖2GB-16GB容量范围,提供组织形式、封装类型和测试状态等信息。其中美光型号最全面,支持12GB/16GB大容量方案。部分型号处于测试验证阶段(T/A),需量产进一步确认性能。该方案为RK3588平台开发提供可靠的内存选型参考。

501846585_QQAndroid_java 1083

OpenClaw Manager Pro - 可视化管理工具

OpenClaw Manager Pro 是一个现代化的 Web 管理界面,用于管理多个 OpenClaw Gateway 实例。🎨美观的界面:深色主题,渐变设计,现代化 UI📡实时监控:WebSocket 实时推送状态和日志🔧完整管理:创建、编辑、删除、启动、停止 Gateway📊多渠道支持:飞书、Telegram、Discord、Slack、微信、钉钉🧩技能管理:可视化配置 61+ 个技能🌍跨平台:支持 macOS、Linux、Windows使用自定义模型系统会自动在中创建},

Maynor的博客 3087

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

在实际开发中,测试是一套环境,生产是一套环境,还有本地环境;不同人开发用同一个配置文件容易发生冲突,本章来学习一下开发中的配置文件,将项目中的各个环境进行一下划分.1.在我们实际开发中有很多环境,经过环境的变换将我们的程序进行部署测试,这样就很好的将我们的项目进行一个划分,特点是分工明确,开发明确.2.在我们项目中的配置文件设置3.可以对配置文件勾选,进行打包部署将我们的程序部署到相应的环境上。

m0_61682705的博客 494

全功能tgbot/Telegram机器人多功能有后台版源码

trx兑换 闪兑 关键字监控 群管 usdt监控 余额查询 推广分享 等几乎常见的tg机器人功能都有。全功能tgbot/telegram机器人多功能有后台版源码-打包好的可以直接上手。

百创科技 2703

Spring Boot多环境配置文件:解锁最佳实践,告别环境切换烦恼!

Spring Boot 多环境配置为我们在不同的运行环境中灵活管理项目配置提供了有力的支持 ,无论是多个配置文件方式的清晰独立,YAML 多文档块方式的集中便捷,结合 Maven Profile 方式的构建定制,还是 @Profile 注解方式的 Bean 级精细控制,都各有其独特的优势和适用场景。

qq_36984455的博客 1253

Statistics and Machine Learning Toolbox

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

温度PID控制PLC程序

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

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

yml配置文件很好用,但是实际生产中会有很多问题。首先我们建立一个工程,将文件后缀改成。

band_mmbx的博客 120

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SpringBoot 多环境切换

日常开发中一般都会有三个不同的环境,分别是开发环境(dev),测试环境(test)和生产环境(prod),不同的环境各种配置都不相同,比如数据库配置,服务器端口等等。

W31003的博客 2277

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

智能代理切换:如何用ZeroOmega实现多环境网络配置自由

在现代开发工作流中,网络环境的复杂性日益增加。从国内开发环境到海外资源访问,从测试服务器到生产环境,开发者经常需要在不同网络配置间频繁切换。传统手动配置代理的方式不仅效率低下,还容易出错。本文将通过"问题-方案-实践"三段式结构,探索如何利用ZeroOmega构建灵活高效的代理管理系统,解决多场景下的网络访问难题。 ## 一、多环境网络配置的核心挑战 ### 开发场景中的网络困境 当你同时进行

gitblog_00471的博客 473

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

在软件开发中,不同的环境如开发环境、测试环境、生产环境等,需要使用不同的配置。SpringBoot提供了一套灵活的配置机制,使得开发人员可以轻松实现多环境切换。

DUT_LYH 974

APISIX 多环境配置管理实战:用 APISIX_PROFILE 环境变量切换配置文件

在真实的网关交付场景中,开发、测试、生产环境往往需要不同的配置(如 etcd 地址、监听端口、Admin API 权限),把多套配置混在同一个文件里来回手工修改极易出错。本指南以 Apache APISIX 官方机制为核心,完整讲解如何通过 `APISIX_PROFILE` 环境变量一键切换整套配置文件,并深入源码剖析其底层实现([profile 模块](https://link.gitcode.

gitblog_00054的博客 810

springboot多环境配置_挺全乎的,SpringBoot多环境配置都在这了,你喜欢哪种

目录前言Spring Boot 自带的多环境配置创建不同环境的配置文件指定运行的环境Maven 的多环境配置创建多环境配置文件定义激活的变量pom 文件中定义 profiles资源过滤总结总结前言日常开发中至少有三个环境,分别是开发环境(dev),测试环境(test),生产环境(prod)。不同的环境的各种配置都不相同,比如数据库,端口,IP地址等信息。那么这么多环境如何区分,如何打包呢?本篇文章...

weixin_39665507的博客 99

Pytest多环境切换实战:测试框架配置的最佳实践!

你是否也遇到过这种情况:本地测试通过,一到测试环境就翻车?环境变量错乱、接口地址混乱、数据源配置丢失……这些「环境切换」问题简直像定时炸弹,随时引爆你的测试流程!测试人员每天都跟不同的环境打交道,比如线上环境,测试环境,预上线环境等等,那么作为自动化测试人员写的代码,我们也要具备能自由切换环境的能力,那么今天小编就给大家聊一下,如何能让我们?“Pytest如何实现环境切换,让测试适应不同场景?”这个问题曾让我挠头。配置文件怎么写?参数怎么传?能不能自动化切换而不用手动改代码?

朱雀随云记的博客 1419

Spring Boot实现多环境配置

在实际项目开发过程中,我们往往需要区分开发,测试,联调,预发布,生产等不同的应用环境。这些应用环境用途不同,对应环境的配置项,稳定性,数据质量,保障性,可接触人群等要求也不同,比如 Swagger 一般上在生产时是关闭的;使用多环境配置,可以针对不同的应用环境,提前配置好对应的环境配置信息。在使用时,仅需要修改具体的环境名称,就可以把对应环境配置信息,系统参数等相关内容全部切换。访问 http://127.0.0.1:8088/hello。启动Spring Boot 应用程序。实现不同环境配置和切换。

八戒的博客 792

SpringBoot配置多环境

在日常开发中,我们项目会有多个环境。例如开发环境(develop)、生产环境(production)等。 我们打包时需要经常切换不同的参数,比如说开发环境下的数据库与生产环境连接的数据库,基本都是两个库。那么我们需要经常来回切换参数,非常麻烦! 在这,springboot给我们提供了非常好的支持,那就是多环境配置。我们可以将多种环境一起配置在项目中,只需要执行不同的运行命令,就可以...

L550834的博客 225

SpringBoot2.0:多环境配置切换。详细见解,一看就懂!

一.简介  application.properties 是 springboot 在运行中所需要的配置信息。里面包含了各种配置,列如:数据库配置、redis配置等等其他的配置信息。但是有一点就是,我们开发后,需要发布到测试环境下。测试完后需要发布到正式环境下。如果都写在application.properties 下配置信息,则需要切换环境就比较麻烦,而且容易出错。所以,我们为了简化这些操作以...

薄殇一宰的博客 977
上一篇: 十分钟!教你玩转SprintBoot定时任务
下一篇: 异常这样处理,对用户更友好
大盛玩java
博客等级 码龄5年 0粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值