文章目录
SpringBoot项目中配置文件的启动顺序
1.springboot内部配置
1.当properties文件与yml文件同时存在
properties文件中的内容
server.port=8081
yml文件中的内容
server:
port: 8080
当启动项目的时候,控制台输出如下
2019-12-03 16:49:08.451 INFO 9560 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8081 (http) with context path ''
可见 当properties文件和yml文件同是处于classpath文件路径下,springboot优先加载properties
2.当配置文件存在于classpath和classpath/config文件夹时
config文件夹中的内容
server:
port: 8082
classpath路径下的内容
server:
port: 8080
当启动项目的时候,控制台输出如下
2019-12-03 17:52:03.588 INFO 7220 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8082 (http) with context path ''
可见 当yml文件处于classpath和classpath/config下,config文件夹下的配置文件优先加载
3.当配置文件存在于classpath和工程文件夹根目录时
classpath文件夹下配置内容
server:
port: 8080
工程文件夹根目录中的内容
server:
port: 8083
当启动项目的时候,控制台输出如下
2019-12-03 17:58:55.131 INFO 13296 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8083 (http) with context path ''
可见 当yml文件处于classpath和工程根目录时,工程根目录下的配置文件优先加载
4.当配置文件存在于classpath和工程根目录下/config文件中
classpath文件夹下配置内容
server:
port: 8080
工程文件夹根目录/config中的内容
server:
port: 8084
当启动项目的时候,控制台输出如下
2019-12-03 18:03:09.543 INFO 12216 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8084 (http) with context path ''
可见 当yml文件处于classpath和工程根目录时,工程根目录/config配置文件优先加载
5.当配置文件存在于classpath和classpath/config文件夹时
工程文件夹根目录/config中的内容
server:
port: 8084
工程文件夹根目录中的内容
server:
port: 8083
启动项目输出如下
2019-12-03 18:06:03.368 INFO 3512 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8084 (http) with context path ''
可见 当yml文件处于工程根目录和根目录/config文件中时,工程根目录/config配置文件优先加载
6.四个位置的文件加载的优先级
项目根目录/config > **项目根目录 ** > classpath/config > classpath
2.Springboot外部配置
1.Springboot打包后的jar包同yml文件处于同一文件夹下
jar包中配置文件内容为
server:
port: 8080
外部yml配置文件内容为
server:
port: 8085
启动后 控制台输出情况如下
2019-12-03 21:13:13.953 INFO 13780 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8085 (http) with context path ''
故此种情况下 外部配置文件读取顺序要优先于内部配置文件
2.命令行启动jar包进行配置
jar包和配置文件处于同一文件夹下
java -jar springboot-0.0.1-SNAPSHOT.jar --server.port=8086
再窗口运行如上命令 启动程序控制台输出如下
2019-12-03 21:18:23.970 INFO 8888 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8086 (http) with context path ''
运行如上命令 启动程序控制台输出如下
2019-12-03 21:18:23.970 INFO 8888 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8086 (http) with context path ''
证明该命令下,命令行配置要优先于外部配置文件