* 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



点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部