springboot多环境设置和切换
一般开发中,都会用到各种环境去运行项目,比如 测试、开发、部署环境等。spring boot特供了多环境的切换和设置,环境切换有两种方式。
- properties配置
- yml配置
- 动态切换
properties配置方式
spring boot默认会读取application.properties配置文件。
首先创建多个环境,就需要创建多个配置文件,而且配置文件命名有要求,例如:
- application-环境名.properties
- application-dev.properties
- application-test.properties
如果要选择某一个具体的环境,只需要在spring boot默认的配置文件中声明即可,如下图:
在application.properties中使用 spring.profiles.active=环境名
去声明当前项目使用的环境,如果在配置文件中输入spring之后没有提示后面的配置,应该是下面的依赖不存在或没有生效,可以手动添加到pom.xml文件中,下面的是我从spring boot里面复制的,版本那里有点问题,可以自行设置版本。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>${spring-boot.version}</version>
</dependency>
yml配置方式
yml和properties不太一样,不需要创建多个环境配置文件,只需在yml文件中声明环境即可,如下:
注意每个环境之间使用---分隔(注意是三个---分隔),默认第一个是主环境。可以在默认环境指定使用其他环境。
spring:
profiles:
active: dev
以上代码是声明要使用的环境。
spring:
profiles: dev
以上代码是设置环境的名字,注意环境名字不要随便起,有规范,可以百度一下,环境的缩写形式。
动态切换
上面的两种配置方式都是静态,就是运行项目前指定使用的环境,那接下来使用动态方式进行配置。
-
通过运行参数指定环境
- Idea : 在application主运行类鼠标右键 -》 Edit 项目名application -》Program arguments -》输入 --spring.profiles.active=环境名,如下图
- 通过maven的打jar包形式把项目打包,然后cmd运行,输入 java -jar 项目名.jar spring.profiles.active=环境名
-
通过vm参数指定环境
vm参数也在上图中,就是上图的VM options ,然后输入:-Dspring.profiles.active=环境名,注意开头是-D。