SpringBoot 2 配置文件 2.4 多环境配置
SpringBoot
【黑马程序员2022新版SSM框架教程_Spring+SpringMVC+Maven高级+SpringBoot+MyBatisPlus企业实用开发技术】
2 配置文件
文章目录
- SpringBoot
- 2 配置文件
- 2.4 多环境配置
- 2.4.1 yaml 文件
- 2.4.2 properties 文件
- 2.4.3 命令行启动参数配置
2.4 多环境配置
之前在Maven 高级中学过如何通过配置多种环境的设定,帮助开发者在使用过程中快速切换环境
而 SpringBoot 给开发者提供了多环境的快捷配置,需要切换环境时只需要改一个配置即可。
但是【不同类型的配置文件多环境开发的配置都不相同】
2.4.1 yaml 文件
在 application.yml 中使用 — 来分割不同的配置
# 开发
spring:
profiles: dev # 给开发环境起的名字
server:
port: 80
---
# 生产
spring:
profiles: pro # 给生产环境起的名字
server:
port: 81
---
# 测试
spring:
profiles: test # 给测试环境起的名字
server:
port: 82
---
配置中 spring.profiles 是用来给不同的配置起名字的。
启用某一段配置
…
那老师您讲他干啥…
2.4.2 properties 文件
properties 类型的配置文件配置多环境需要定义不同的配置文件
【application-dev.properties 是开发环境的配置文件。】
【application-test.properties 是测试环境的配置文件。】
【application-pro.properties 是生产环境的配置文件。】
SpringBoot 只会默认加载名为 application.properties 的配置文件,所以需要在 application.properties 配置文件中设置启用哪个配置文件
2.4.3 命令行启动参数配置
使用 SpringBoot 开发的程序以后都是打成 jar 包,通过 java -jar xxx.jar 的方式启动服务的。
那么就存在一个问题,如何切换环境呢?因为配置文件都打倒 jar包中了。
jar 包其实就是一个压缩包,可以解压缩,然后修改配置,最后再打成jar包就可以了。
【很明显…麻烦】
SpringBoot 提供了在运行 jar 时设置开启指定的环境的方式
同时设置多个配置,即指定启用哪个环境配置,又临时指定端口
java –jar springboot.jar –-server.port=88 –-spring.profiles.active=test
命令行中设置的端口号优先级是更高的。
SpringBoot官网:https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config
如果使用了多种方式配合同一个配置项,优先级高的生效。