栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java > SpringBoot

你所不知道的spring boot多环境配置

SpringBoot 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

你所不知道的spring boot多环境配置

本篇文章建立在已有spring boot和idea使用基础之上。没有使用过的童鞋也可以大概了解一下。
我们都知道,spring boot中可以进行多环境配置,通常配置的文件名需要符合application-{profile}.properties或者application-{profile}.yml。

yml与properties之间的优先级application.yml与application.properties

在正式说明如何在系统系统时进行配置文件的选择之前,我们先来做个小实验。究竟application.properties和application.yml两者之间的优先级谁更高一些呢?我们首先写了一个简单的web项目,在里面分别写了一个application.yml和application.properties文件,分别将两者设置不同的端口。
在yml中设置端口为8081:


图片.png


在properties中设置端口为8082:


图片.png


然后运行项目,可以看到系统端口为8082,也就是实际上用来properties的配置:

图片.png

application-dev.yml与application-dev.properties

然后我们看看application-dev.yml与application-dev.properties之间的优先级。这里我们顺便就说明一下,如何去加载某个环境配置文件。第一个实验中,我们知道了实际起作用的是application.properties,那么我们就在里面选择环境配置文件,注意这里需要将application.properties中之前设置的端口配置去掉,否则会影响本次实验,配置语句如下:

spring.profiles.active=dev

配置如图:


图片.png


同时在resource目录中建立application-dev.properties和application-dev.yml,里面分别进行配置端口为8083和8084,如下图所示:


图片.png


图片.png


然后,我们启动系统,发现系统端口为8083,也就是application-dev.properties起作用了:

图片.png

加载环境配置

在刚才的实验中已经展示了其中一种加载环境配置文件的方式,还有其他方式吗?当然还有呀!

1 启动参数后加入--spring.profiles.active=dev

在idea中,点击run/edit configurations:


图片.png


在program arguments中填入参数:


图片.png


运行项目(注意将之前application.properties中的设置去掉,否则无法分辨是我们加入参数的效果还是之前配置的效果):

图片.png

2 JVM参数后加入-Dspring.profiles.active=dev

如图配置:


图片.png


然后启动项目,结果符合预期:


图片.png

3 加入环境参数中

图片.png


在application-dev.yml中加入配置:

server:
  port: 8081

启动项目,结果符合预期:


图片.png


以上操作都在windows中进行,在mac中又会有些不同。
在application.properties中设置和在jvm参数中设置的方法依然有效,但是在program arguments中加入参数却无效了。
设置如下:


图片.png


application-prod.yml文件中的配置如下:

server:
  port: 8088

启动项目,可以看到仍然是默认的8080端口:


图片.png


关于这块,后续我可能还会继续将研究的内容发布上来,想要了解的朋友可以持续关注。

至此,本篇文章到此结束,喜欢的童鞋可以点个赞。
原文地址:https://www.jianshu.com/p/c0eaf1f8c529



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/235742.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号