版权声明:本文为 小异常 原创文章,非商用自由转载-保持署名-注明出处,谢谢!
本文网址:https://blog.csdn.net/sun8112133/article/details/103198615
文章目录
一个应用程序从开发到上线,往往需要经历几个阶段,比如开发、测试、实施、上线等。每个阶段所用到的环境配置可能都是不一样的,Spring Boot 可以很方便地在各个环境中对配置进行切换。所以,本篇主要讲解 Spring Boot 中多种环境(profile)的设置及切换。
一、四种环境
一般情况下我们常见的环境有: pro环境 、 pre环境 、 test环境 和 dev环境 ,它们分别代表 生产环境 、 灰度环境 、 测试环境 和 开发环境 。
-
pro环境
生产环境 ,面向外部用户的环境,连接上互联网即可访问的正式环境。
-
pre环境
灰度环境 ,外部用户可以访问,但是服务器配置相对低,其它和生产一样。
-
test环境
测试环境 ,外部用户无法访问,专门给测试人员使用的,版本相对稳定。
-
dev环境
开发环境 ,外部用户无法访问,开发人员使用,版本变动很大。
二、多个配置文件配置环境
我们都知道 Spring Boot 默认会读取 application.properties配置文件,所以我们要在 application.properties配置文件 中指定本次项目运行时的环境。
如果我们在项目中配置了多个环境,那么我们就需要在 application.properties配置文件 中指定本次要使用的环境名。
每一个环境其实就是一个配置文件,但这个配置文件却有一定的命名规范。
1、命名格式
application-环境名.properties
或
application-环境名.yml
如果要选择某一个具体的环境:我们需要在 application.properties配置文件 中指定对应的环境:
spring.profiles.active=环境名
2、注意事项
- 如果 application.properties配置文件 中没有配置任何信息,那么 Spring Boot 默认也会读取其他环境配置文件中的配置,所以环境名是不能自定义的。
- 如果你发现在 application.properties配置文件 中没有相应的提示,我们可以在 pom.xml文件 中加上以下依赖信息:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
然后重新打开 application.properties配置文件,当你使用 Alt+/
时,就会显示对应的配置提示了。
三、在 yaml 文件中配置环境
我们在上一节中已经讲过使用多个配置文件来配置各个环境。我们其实在 yaml文件 中配置环境,可以只在一个配置文件(application.yml配置文件)中配置多个环境的配置信息。
下列代码是在 application.yml配置文件 中设置多种环境。我们要使用分隔线来划分多个环境配置信息:
#第一个环境(主环境)
server:
port: 8883
spring:
profiles:
active: dev #指定本次采用的环境(默认会读取 dev环境 的配置信息,不会读取其他环境的配置信息)
#第二个环境(dev环境)
--- #环境分隔线
server:
port: 8884
spring:
profiles: dev #设置环境名
student:
aa: 888888888
#第三个环境(test环境)
--- #环境分隔线
server:
port: 8885
spring:
profiles: test #设置环境名
四、动态切换环境
如果在 application.properties配置文件 或 application.yml配置文件 中 没有指定环境,我们也可以在项目运行的时候动态的指定所使用的环境。我们可以通过以下两种方式来切换环境:
1、运行参数方式
1)STS(Eclipse)
如果我们使用的是类似 STS 的 IDE工具,我们可以选择 右键 Run As -> Run Configurations -> Arguments -> Program arguments。
然后输入:
--spring.profiles.active=环境名
命令,点击 Run 运行项目即可。
2)CMD
如果不借助 IDE工具,我们需要先将 项目进行打 Jar包(右键 Run As -> Maven build… -> Goals:package -> Run),然后在 CMD命令行窗口 执行
java -jar HelloWorld-0.0.1-SNAPSHOT.jar --spring.profiles.active=环境名
命令。
2、通过VM参数指定环境
类似 STS 的 IDE工具 其实还有一种动态切换方式,我们可以通过 VM参数 来指定环境,我们可以选择 右键 Run As -> Run Configurations -> Arguments -> VM arguments。
然后输入:
-Dspring.profiles.active=环境名
命令,点击 Run 运行项目即可。