* springboot 的配置文件,有两种格式
application.yml
application.properties
* application.properties 格式为=号形式的:
spring.application.name = test-api
spring.servlet.multipart.max-file-size=50MB
spring.servlet.multipart.max-request-size=50MB
spring.servlet.multipart.file-size-threshold=10KB
spring.mvc.async.request-timeout=20000
* application.yml 格式为缩进形式的:
server:
port: 8086
spring:
application:
name: test-api
* 在实际的开发中,我们往往需要在不同的环境中使用不同的数据库、缓存配置,如果使用同一套配置文件,在不同环境部署的时候手动去修改配置文件,会使部署变得很繁琐,使用多环境配置文件可以很方便的实现此功能。
* 我们在多配置文件编写的时候,文件名是 application-{profile}.properties/yml。
* application.properties 格式的多环境文件名一般为:
application.properties //通用配置
application-dev.properties //开发环境配置
application-test.properties //测试环境配置
application-prod.properties //生产环境配置
* application.yml 格式的多环境文件名一般为:
application.yml //通用配置
application-dev.yml //开发环境配置
application-test.yml //测试环境配置
application-prod.yml //生产环境配置
* 一般我们需要将通用配置都放在 application.properties 或 application.yml 文件中,然后将不同环境的不同配置,放在对应的环境配置文件中
* 所以,我们在部署服务的时候,需要部署 application.properties 或 application.yml 文件,以及对应环境的环境配置文件一起发布,并同时需要修改 application.properties 或 application.yml 文件中的环境激活配置(也可以通过启动命令行来覆盖环境激活配置,下面会有相关说明)
* 如 application.properties 文件中,应该要有如下配置:
# 表示当前激活dev环境配置,则会自动再追加读取 application-dev.properties
# 如果要激活prod环境配置,则需要将dev修改为prod
spring.profiles.active=dev
* 同时, application-dev.properties 文件中也可以指定自己是属于什么环境,这样做有些多余,可以忽略
# 当前配置为 dev 环境
spring.config.activate.on-profile=dev
# 注意, springboot 版本在 2.4 之前的,需要使用
# spring.profiles.active=dev
* 如 application.yml 文件中,应该要有如下配置:
# 表示当前激活dev环境配置,则会自动再追加读取 application-dev.yml
# 如果要激活prod环境配置,则需要将dev修改为prod
spring:
profiles:
active: dev
* 同时, application-dev.yml 文件中也可以指定自己是属于什么环境,这样做有些多余,可以忽略
spring:
config:
activate:
on-profile: dev
# 注意, springboot 版本在 2.4 之前的,需要使用以下格式
#spring:
# profiles:
# active: dev
* 注意, springboot 2.4版本之前的配置是不一样的,你可以通过在 pom.xml 文件中,搜索 spring-boot-starter-parent 配置属性来确定你的版本号
* 当我们在 application.properties 或 application.yml 文件中配置了默认的激活环境后,在部署到测试环境或生产环境时,需要使用 springboot 的启动命令行来覆盖激活环境,方便动态调整激活配置文件的读取,如生产环境启动时的命令行为:
# 表示激活prod环境配置,则会追加读取 application-prod.properties 或 application-prod.yml
java -Dfile.encoding=utf-8 -Xms256m -Xmx1536m -jar test-api-1.0.0.jar spring.profiles.active=prod
* springboot 配置文件的加载顺序为:
classpath - classpath 下的 config 文件夹 - 项目根目录 - 项目根目录下的 config 文件夹
* 配置文件将会按照以上顺序逐层覆盖,也就是说 项目根目录下的 config 文件夹中的配置文件将会覆盖之前的配置
* vscode 中,我们也可以指定启动调试的激活环境,在launch.json文件中,对主入口的配置增加 args 参数,参考示例如下:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "TestApiApplication",
"request": "launch",
"mainClass": "com.testapi.TestApiApplication",
"projectName": "test-api",
"args": "--spring.profiles.active=dev"
}
]
}
* 其他相关参考链接:
https://www.cnblogs.com/jddreams/p/14329965.html
https://www.hangge.com/blog/cache/detail_2459.html
https://blog.csdn.net/qq_37992410/article/details/121008415