有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准
https://blog.zysicyj.top
全网最细面试题手册,支持艾宾浩斯记忆法。这是一份最全面、最详细、最高质量的 java面试题,不建议你死记硬背,只要每天复习一遍,有个大概印象就行了。 https://store.amazingmemo.com/chapterDetail/1685324709017001`
Spring Boot 配置文件加载优先级
Spring Boot 提供了多种方式来配置应用程序,这些配置可以位于多个位置,并且具有不同的优先级。以下是Spring Boot配置文件加载的优先级列表,从最高优先级到最低优先级:
命令行参数
任何直接在命令行上使用
--name=value形式传递的参数都具有最高优先级。来自
SPRING_APPLICATION_JSON的属性SPRING_APPLICATION_JSON是一个环境变量,它包含一个内联的JSON对象。例如:SPRING_APPLICATION_JSON='{"acme":{"name":"test"}}'ServletConfig 初始化参数
如果你的应用是一个传统的war,则这些参数可以用来指定配置。
ServletContext 初始化参数
类似于ServletConfig初始化参数,但是它们是全局的。
JNDI 属性
在JNDI中配置的属性。
Java系统属性 (
System.getProperties())可以通过
-Dname=value语法传递给JVM的系统属性。操作系统环境变量
操作系统级别的环境变量也可以用来配置应用程序。
RandomValuePropertySource
只包含
random.*属性的属性源。JAR包外部的应用程序配置文件
位于
/config子目录(例如config/application.properties)或者在当前目录下(例如application.properties)。JAR包内部的应用程序配置文件
打包在JAR文件内部的配置文件,通常位于
/BOOT-INF/classes或者类路径的根目录。通过
@PropertySource注解在配置类中添加的属性使用
@PropertySource注解的配置类。默认属性
在
@SpringBootApplication注解的类中通过SpringApplication.setDefaultProperties指定的默认属性。
了解这些优先级对于正确配置Spring Boot应用程序至关重要,因为它们决定了在存在多个配置源时哪些配置将生效。通常,你会希望将更具体的配置(如命令行参数)设置为更高的优先级,而更通用的配置(如应用程序配置文件)则设置为较低的优先级。


