Springboot在启动的时候会依次按照以下的文件目录顺序来扫描配置文件
1.file: ./config/ (项目根目录的config文件夹下)
2.file: ./ (项目根目录下)
3.classpath: ./config/ (类路径下的config文件夹下)
4.classpath: ./ (类路径下)
如下演示:
1.类路径下启动springboot为8081端口
2. 类路径下的config目录下
server.port改为8082
他会无视类路径下边的8081端口而使用config文件夹下的端口
3. 根目录下的application.properties
端口号为8083
4.根目录下的config文件夹下
就是这么个优先级顺序
虽然有优先级,但是不代表低优先级的文件就不看了,他们是一种互补配置,低优先级的也会看,只不过同时存在的内容高优先级的会生效
如下:
我们在类路径下的application.properties里边指定访问路径
这里注意springboot 1.x版本为server.context-path
springboot 2.x版本改成了server.servlet.context-path
在controller里边有一个hello,我们用来做测试
启动springboot发现端口依旧是8085,不过后边的with context path成了/bootx
我们访问如下路径localhost:8085/hello发现无法访问
这个时候就是类路径下的配置文件生效了,我们要加上/bootx才可以如下