springboot多环境配置

问题背景 

        以后在工作中,对于开发环境、测试环境、生产环境的配置肯定都不相同,比如我们开发阶段会在自己的电脑上安装 mysql ,连接自己电脑上的 mysql 即可,但是项目开发完毕后要上线就需要该配置,将环境的配置改为线上环境的。

        来回的修改配置会很麻烦,而 SpringBoot 给开发者提供了多环境的快捷配置,需要切换环境时只需要改一个配置即可。不 同类型的配置文件多环境开发的配置都不相同,接下来对不同类型的配置文件进行说明。

1.yaml

测试项目结构: 

在 application.yml 中使用“ --- 来分割不同的配置,内容如下

#开发
spring:profiles: dev
server:port: 80
---
#生产
spring:profiles: pro
server:port: 81
---
#测试
spring:profiles: test
server:port: 82
---

而如何告知 SpringBoot 使用哪段配置呢?可以使用如下配置来启用都一段配置 

#设置启用的环境
spring:profiles:active: dev

综上所述, application.yml 配置文件内容如下: 

#设置启用的环境
spring:profiles:active: dev
---
#开发
spring:profiles: dev
server:port: 80
---
#生产
spring:profiles: pro
server:port: 81
---
#测试
spring:profiles: test
server:port: 82
---

注意:

在上面配置中给不同配置起名字的 spring.profiles 配置项已经过时。

最新用来起名字的配置项是:

spring:config:activate:on-profile: dev

 

由于properties的优先级比yml高,先给properties中的配置注释一下再来测试:

启动springboot的引导程序:

可以看到根据我们yml中启动的dev环境配置是将tomcat的端口设置为80;

我们继续测试:将环境配置改为test

#设置启用的环境
spring:profiles:active: test
---
#开发
#spring:#profiles: dev
spring:config:activate:on-profile: devserver:port: 80---
#生产
spring:profiles: pro
server:port: 81
---
#测试
spring:profiles: test
server:port: 82
---

重启程序:

控制台输出的日志信息正确! 

2.properties

测试项目结构: 

properties 类型的配置文件配置多环境需要定义不同的配置文件 

application-dev.properties 是开发环境的配置文件。我们在该文件中配置端口号为 8081
application-test.properties 是测试环境的配置文件。我们在该文件中配置端口号为 8082
application-pro.properties 是生产环境的配置文件。我们在该文件中配置端口号为 8083

1. application-dev.properties

 

server.port=8081

2. application-test.properties

server.port=8082

3. application-pro.properties

server.port=8083

        SpringBoot 只会默认加载名为 application.properties 的配置文件,所以需要application.properties 配置文件中设置启用哪个配置文件,配置如下:

spring.profiles.active=pro

启动程序:

 

结果正确;

继续实验:

将环境配置改为:test

重启程序:

结果正确! 

3.命令行启动参数设置 

        使用 SpringBoot 开发的程序以后都是打成 jar 包,通过 java -jar xxx.jar 的方式启动服务的。

        那么就存在一个问题,如何切换环境呢?

        因为配置文件打到的jar包中了。 我们知道 jar 包其实就是一个压缩包,可以解压缩,然后修改配置,最后再打成jar包就可以了。这种方式显然有点麻烦, 而 SpringBoot 提供了在运行 jar 时设置开启指定的环境的方式,如下

(1).指定环境

java –jar xxx.jar –-spring.profiles.active=test

(2).临时修改端口号 

java –jar xxx.jar –-server.port=88

(3).同时设置多个配置 

java –jar springboot.jar –-server.port=88 –-spring.profiles.active=test

我们实验一下:

①用maven将springboot程序打成jar包

双击lifecycle中的package: 

 

打包完成。

②进入jar包所在的文件夹目录下启动cmd 

在项目文件夹target下用文件浏览器打开: 

③输入命令行

结果正确! 

4.配置的优先级

大家进行测试后就会发现命令行设置的端口号优先级高(也就是使用的是命令行设置的端口号),配置的优先级其实 SpringBoot 官网已经进行了说明,参见 :

https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#bootfeatures-external-configicon-default.png?t=O83Ahttps://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#bootfeatures-external-config 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/3430.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WOA-CNN-GRU-Attention、CNN-GRU-Attention、WOA-CNN-GRU、CNN-GRU四模型对比多变量时序预测

WOA-CNN-GRU-Attention、CNN-GRU-Attention、WOA-CNN-GRU、CNN-GRU四模型对比多变量时序预测 目录 WOA-CNN-GRU-Attention、CNN-GRU-Attention、WOA-CNN-GRU、CNN-GRU四模型对比多变量时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 基于WOA-CNN-GRU-Attention、…

鸿蒙动态路由实现方案

背景 随着CSDN 鸿蒙APP 业务功能的增加,以及为了与iOS、Android 端统一页面跳转路由,以及动态下发路由链接,路由重定向等功能。鸿蒙动态路由方案的实现迫在眉睫。 实现方案 鸿蒙版本动态路由的实现原理,类似于 iOS与Android的实…

【Go】Go Gorm 详解

1. 概念 Gorm 官网:https://gorm.io/zh_CN/docs/ Gorm:The fantastic ORM library for Golang aims to be developer friendly,这是官网的介绍,简单来说 Gorm 就是一款高性能的 Golang ORM 库,便于开发人员提高效率 那…

Chrome谷歌浏览器如何能恢复到之前的旧版本

升级了谷歌最新版不习惯,如何降级版本 未完待续。。 电脑中的Chrome谷歌浏览器升级到了最新版本,但是有种种的不适应,如何能恢复到之前的旧版本呢?我们来看看操作步骤,而且无需卸载重装。 怎么恢复Chrome 之前版本&a…

技术晋升读书笔记—华为研发

读完《华为研发》第三版,我深感震撼,书中的内容不仅详实地记录了华为公司的成长历程,还揭示了华为成功背后的管理理念和创新思路。这本书通过真实的案例和数据,展示了华为如何从一个小企业发展成全球通信行业的领导者。 一、关键人…

数据可视化:让数据讲故事的艺术

目录 1 前言2 数据可视化的基本概念2.1 可视化的核心目标2.2 传统可视化手段 3 数据可视化在知识图谱中的应用3.1 知识图谱的可视化需求3.2 知识图谱的可视化方法 4 数据可视化叙事:让数据讲故事4.1 叙事可视化的关键要素4.2 数据可视化叙事的实现方法 5 数据可视化…

【OpenCV(C++)快速入门】--opencv学习

0 配置环境 配置环境网上很多资料&#xff0c;这里就不赘述了。 笔者使用的是VS2022opencv4.9.0 测试配置环境 // 打开摄像头样例 #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/imgcodecs/imgcod…

归并排序算法

归并排序 1算法介绍 和选择排序一样&#xff0c;归并排序的性能不受输入数据的影响&#xff0c;但表现比选择排序好的多&#xff0c;因为始终都是O(n log n&#xff09;的时间复杂度。代价是需要额外的内存空间。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用…

unity学习18:unity里的 Debug.Log相关

目录 1 unity里的 Debug.log相关 2 用Debug.DrawLine 和 Debug.DrawRay画线 2.1 画线 1 unity里的 Debug.log相关 除了常用的 Debug.Log&#xff0c;还有另外2个 Debug.Log("Debug.Log"); Debug.LogWarning("Debug.LogWarning"); Debug.LogErro…

c语言第一天

前言&#xff1a; bili视频2. 【初识C语言】第一个C语言项目_哔哩哔哩_bilibili 我感觉我意志不坚定&#xff0c;感觉要学网络安全&#xff0c;我又去专升本了&#xff0c;咋搞啊 多学一点是一点&#xff0c;我看到day1团队的人&#xff0c;一天学12个小时&#xff0c;年入2…

PyTorch DAY2: 搭建神经网络

如今&#xff0c;我们已经了解了 PyTorch 中张量及其运算&#xff0c;但这远远不够。本次实验将学会如何使用 PyTorch 方便地构建神经网络模型&#xff0c;以及 PyTorch 训练神经网络的步骤及方法。 知识点 PyTorch 构建神经网络Sequential 容器结构使用 GPU 加速训练模型保存…

2025 年 Java 最新学习资料与学习路线——从零基础到高手的成长之路

2025 年 Java 最新学习资料与学习路线——从零基础到高手的成长之路 大家好&#xff0c;欢迎来到我的频道&#xff01;今天我们要聊聊 Java ——这门陪伴了很多程序员成长的编程语言。无论你是编程新手&#xff0c;还是已经走了一段编程路&#xff0c;但还不确定如何深入学习 …

riscv架构下linux4.15实现early打印

在高版本linux6.12.7源码中&#xff0c;early console介绍&#xff0c;可参考《riscv架构下linux6.12.7实现early打印》文章。 1 什么是early打印 适配内核到新的平台&#xff0c;基本环境搭建好之后&#xff0c;首要的就是要调通串口&#xff0c;方便后面的信息打印。 正常流…

【论文阅读笔记】基于YOLO和ResNet深度卷积神经网络的结直肠息肉检测

作者&#xff1a;李素琴、吴练练、宫德馨、胡珊、陈奕云、朱晓云、李夏、于红刚 效果视频链接&#xff1a;https://www.xhnj.com/m/video/1008384.htm 小结 从算法的角度来说&#xff0c;作为2020发布的论文&#xff0c;使用的技术是比较落后的了。一个息肉检测项目&#xff0…

win32汇编环境,窗口程序中基础列表框的应用举例

;运行效果 ;win32汇编环境,窗口程序中基础列表框的应用举例 ;比如在窗口程序中生成列表框&#xff0c;增加子项&#xff0c;删除某项&#xff0c;取得指定项内容等 ;直接抄进RadAsm可编译运行。重点部分加备注。 ;以下是ASM文件 ;>>>>>>>>>>>…

Lora理解QLoRA

Parameter-Efficient Fine-Tuning (PEFT) &#xff1a;节约开销的做法&#xff0c;fine-tune少量参数&#xff0c;而不是整个模型&#xff1b; Low-Rank Adaptation (LoRA) &#xff1a;是PEFT的一种&#xff1b;冻结原参数矩阵&#xff0c;只更新2个小参数矩阵。 原文经过对比…

YOLOv5训练长方形图像详解

文章目录 YOLOv5训练长方形图像详解一、引言二、数据集准备1、创建文件夹结构2、标注图像3、生成标注文件 三、配置文件1、创建数据集配置文件2、选择模型配置文件 四、训练模型1、修改训练参数2、开始训练 五、使用示例1、测试模型2、评估模型 六、总结 YOLOv5训练长方形图像详…

基于微信小程序的电子点菜系统设计与实现(KLW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

Titans 架构中的记忆整合:Memory as a Context;Gated Memory;Memory as a Layer

Titans 架构中的记忆整合 Titans 架构中的记忆整合 Memory as a Context(MAC)变体:在处理长序列数据时,将序列分段,对于当前段 S ( t ) S^{(t)}

洛谷P3916 图的遍历

题目描述 给出 N 个点,M 条边的有向图&#xff0c;对于每个点 v&#xff0c;求 A(v) 表示从点 v 出发&#xff0c;能到达的编号最大的点。 输入格式 第 1 行 2 个整数 N,M&#xff0c;表示点数和边数。 接下来 M 行&#xff0c;每行 2 个整数 Ui,Vi​&#xff0c;表示边 (U…