springboot项目打成jar包后 ,配置文件加载的优先级顺序

Spring Boot会按照以下顺序来加载配置文件:

1、内置默认值:Spring Boot会首先加载内置的默认值,这些默认值定义在Spring Boot的代码中,例如,内置的默认端口号为8080。

2、应用级别的配置文件:Spring Boot会从以下位置加载应用级别的配置文件,这些位置按照优先级逐一检查:

当前目录下的/config文件夹。
当前目录。
classpath下的/config包。
classpath根目录。
例如,如果应用的名称为"myapp",则Spring Boot会尝试加载以下文件:

./config/myapp.properties
./config/myapp.yml
./myapp.properties
./myapp.yml
classpath:/config/myapp.properties
classpath:/config/myapp.yml
classpath:/myapp.properties
classpath:/myapp.yml
3、项目级别的配置文件:Spring Boot会从以下位置加载项目级别的配置文件,这些位置按照优先级逐一检查:

当前目录下的/config文件夹。
当前目录。
classpath下的/config包。
classpath根目录。
例如,如果应用的名称为"myapp",则Spring Boot会尝试加载以下文件:

./config/application.properties
./config/application.yml
./application.properties
./application.yml
classpath:/config/application.properties
classpath:/config/application.yml
classpath:/application.properties
classpath:/application.yml

4、命令行参数:Spring Boot会加载命令行中指定的任何属性值,这些属性值会覆盖之前加载的任何属性值。例如,通过在命令行中指定--server.port=9090可以覆盖默认的8080端口号。

注意:加载优先级逐一降低,即优先级高的配置文件会覆盖优先级低的配置文件中的属性值。因此,应用级别的配置文件会覆盖项目级别的配置文件中的属性值,而命令行参数会覆盖所有其他位置的属性值。

posted @ 2023-04-15 16:03  视觉工作室-NASK-Arya  阅读(1205)  评论(0编辑  收藏  举报