配置文件&&外部配置
1)、配置文件
1.springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件,启动优先级如下
–file:./config/ # 根路径下的config文件夹
–file:./ # 根路径下根目录
–classpath:/config/ # 类路径下的config目录
–classpath:/ # 类路径下的根目录
优先级由高到底,高优先级的配置会覆盖低优先级的配置;
SpringBoot会从这四个位置全部加载主配置文件;互补配置;
我们还可以通过spring.config.location来改变默认的配置文件位置
项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置;指定配置文件和默认加载的这些配置文件共同起作用形成互补配置;
指定:java -jar boot_name --spring.config.location=文件位置
1.分别在根路径下的config文件夹和根路径下创建application.properties配置文件
根路径下的config文件夹下的application.properties配置文件为8081端口
2.根路径下的application.properties端口为8082
3.运行结果:端口号为8081
2)、外部配置文件加载优先级
SpringBoot也可以从以下位置加载配置; 优先级从高到低;高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置
1.命令行参数
所有的配置都可以在命令行上进行指定
java -jar boot_name --server.port=xxx --server.context-path=xxx
多个配置用空格分开; --配置项=值
由jar包外向jar包内进行寻找;
优先加载带profile
jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件
jar包内部的application-{profile}.properties或application.yml(带spring.profile)配置文件
再来加载不带profile
jar包外部的application.properties或application.yml(不带spring.profile)配置文件
jar包内部的application.properties或application.yml(不带spring.profile)配置文件
总结:无论是否带profile配置文件,优先加载外部配置文件,再次就是内部配置文件,再来判断是否带有profile配置文件,有则优先加载
application-{profile}.properties | application.properties | |
---|---|---|
加载顺序 | 由jar包外向jar包内进行寻找,优先加载 带profile配置文件 | 由jar包外向jar包内进行寻找,在 profile 配置文件后加载 |
3)、互补配置
1.在类路径下的application.properties配置文件中添加虚拟路径
注意:SpringBoot 1.x版本配置
server.context-path=xxx
SpringBoot 2.x版本配置
server.servlet.context-path=xxx
2.运行结果:
添加了虚拟路径,意味着需要IP+端口号+虚拟路径才能访问到项目,否则会出现404
添加上虚拟路径访问,就可以访问到了
让我们一起在学习的路上加油!!