在Spring Boot中,properties文件的优先级是根据它们的加载顺序来确定的。当有多个相同的属性时,优先级高的文件中的值会覆盖优先级低的文件中的值。以下是Spring Boot中properties文件的优先级顺序:
- 命令行参数(Command Line Arguments):这些参数可以通过
--key=value
的形式传递给Spring Boot应用程序。 - 程序参数(Program Arguments):这些参数可以通过
SpringApplication.setAdditionalProfiles()
方法传递给Spring Boot应用程序。 - 操作系统环境变量(OS Environment Variables):这些变量可以在操作系统中设置,并以大写字母和下划线的形式表示,例如
MY_PROPERTY
。 - Java系统属性(Java System Properties):这些属性可以通过
-Dkey=value
的形式传递给Java虚拟机。 - 配置文件(Configuration Files):
- 类路径下的
application-{profile}.properties
或application-{profile}.yml
文件,其中{profile}
是激活的配置文件。 - 类路径下的
application.properties
或application.yml
文件。 - 当前目录下的
application-{profile}.properties
或application-{profile}.yml
文件。 - 当前目录下的
application.properties
或application.yml
文件。
- 类路径下的
- 默认属性(Default Properties):这些属性可以通过
SpringApplication.setDefaultProperties()
方法设置。
需要注意的是,这里的优先级顺序是从高到低的,即命令行参数具有最高的优先级,而默认属性具有最低的优先级。当有多个相同的属性时,优先级高的属性值会覆盖优先级低的属性值。