有的时候博客内容会有变动,首发博客是最新的,其余博客地址可能会未同步, 认准
https://blog.zysicyj.top
首发博客地址
文章更新打算
系列文章地址
Spring Boot 加载配置文件的优先级是依据不同的地位和命名规定来确定的。上面依照优先级从高到低的程序来介绍:
- 命令行参数 :通过命令行参数指定的配置会笼罩其余配置。例如,应用
--spring.config.name
和--spring.config.location
参数能够指定配置文件的名称和地位。 - 操作系统环境变量 :Spring Boot 会主动将操作系统环境变量中以
SPRING_
结尾的变量转换为配置属性。例如,将SPRING_APPLICATION_NAME
设置为myapp
,则能够在配置文件中应用${spring.application.name}
来援用该值。 - 命令行属性 :能够通过
-D
参数或者--spring.config.name
和--spring.config.location
参数来指定配置文件的名称和地位。 - jar 包内部的 application.properties 或 application.yml:如果存在
config
文件夹,Spring Boot 会加载该文件夹下的application.properties
或application.yml
文件。 - jar 包外部的 application.properties 或 application.yml:如果 jar 包外部存在
application.properties
或application.yml
文件,Spring Boot 会加载该文件。 - jar 包外部的 application-{profile}.properties 或 application-{profile}.yml:如果指定了激活的 profile,Spring Boot 会加载对应的
application-{profile}.properties
或application-{profile}.yml
文件。 - jar 包内部的 application-{profile}.properties 或 application-{profile}.yml:如果存在
config
文件夹,Spring Boot 会加载该文件夹下的application-{profile}.properties
或application-{profile}.yml
文件。 - jar 包内部的 application.properties 或 application.yml:如果存在
config
文件夹,Spring Boot 会加载该文件夹下的application.properties
或application.yml
文件。
须要留神的是,Spring Boot 会依照上述程序加载配置文件,前面加载的配置会笼罩后面加载的配置。因而,如果存在多个配置文件,能够通过优先级来管制配置的加载程序。
另外,Spring Boot 还反对应用 @PropertySource
注解来加载自定义的配置文件,能够通过 value
属性指定配置文件的门路。这种形式的优先级介于 jar 包外部和 jar 包内部的配置文件之间。
总结起来,Spring Boot 加载配置文件的优先级从高到低顺次为:命令行参数 > 操作系统环境变量 > 命令行属性 > jar 包内部的配置文件 > jar 包外部的配置文件 > jar 包内部的 profile 配置文件 > jar 包外部的 profile 配置文件。
<!– md tj.md –>
本文由 mdnice 多平台公布