From aa9b672d4f02833d0b3ce7e26374c9d125917568 Mon Sep 17 00:00:00 2001 From: xking Date: Tue, 25 Mar 2025 09:45:03 +0800 Subject: [PATCH] =?UTF-8?q?add=20springboot=20=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6j=E5=8A=A0=E8=BD=BD=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...oot配置文件与参数加载优先级.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 java/Springboot配置文件与参数加载优先级.md diff --git a/java/Springboot配置文件与参数加载优先级.md b/java/Springboot配置文件与参数加载优先级.md new file mode 100644 index 0000000..ba21fd3 --- /dev/null +++ b/java/Springboot配置文件与参数加载优先级.md @@ -0,0 +1,38 @@ +## Springboot 配置文件 与参数加载优先级 + + + +### 加载顺序 + +在 Spring Boot 中,配置文件的加载顺序是按照以下规则: + +1. **bootstrap.yml 或 bootstrap.properties**: 这是最先加载的配置文件,用于配置应用程序上下文的基础设施,例如外部配置源和加密/解密。 +2. **application.yml 或 application.properties**: 这是主配置文件,包含应用程序的常规配置。 +3. **application-{profile}.yml 或 application-{profile}.properties**: 针对不同的环境(profile)加载相应的配置文件。例如,`application-dev.yml` 用于开发环境,`application-prod.yml` 用于生产环境。 + + + +### 配置文件目录 + +SpringBoot配置文件可以放置在多种路径下,不同路径下的配置优先级有所不同。 +可放置目录**(优先级从高到低)** + +- **file:./config/** (当前项目路径config目录下); +- **file:./** (当前项目路径下); +- **classpath:/config/** (类路径config目录下); +- **classpath:/** (类路径config下). + +优先级由高到底,高优先级的配置会覆盖低优先级的配置; +SpringBoot会从这四个位置全部加载配置文件并互补配置; + + + +### 命令行参数、环境变量 + +Spring Boot 的配置加载顺序(**后者覆盖前者**): + +1. **`application.yml` / `application.properties`**(默认配置) +2. **`-D` JVM 参数**(如 `-Dserver.port=8080`) +3. **`--` 命令行参数**(如 `--server.port=8081`) +4. **环境变量**(如 `SERVER_PORT=8082`) +