SpringBoot学习笔记(十六)–配置文件的加载位置
Spring Boot 启动时,会扫描以下位置的 application.properties 或者 application.yml 文件,作为Spring Boot 的默认配置文件。
- –file:./config/
- –file:./
- –classpath:/config/
- –classpath:/
优先级由高到底,高优先级的配置会覆盖低优先级的配置。
Spring Boot 会从这四个位置全部加载主配置文件,就算高优先级的目录下已经有了配置文件,低优先级的目录下的配置文件也会加载,也就是互补配置。
通过 spring.config.location 可以改变默认的配置文件位置。
项目打包好以后,使用命令行参数的形式,启动项目时指定配置文件的新位置。指定的配置文件和默认加载的配置文件共同起作用,形成互补配置。
java -jar springboot-02-config-02-0.0.1-SNAPSHOT.jar --spring.config.location=D:/springboot_properties/application.properties
验证
优先级
1、在 springboot-02-config-02\src\main\resources\application.properties 中配置端口号
server.port=8081
配置好后运行结果为
Tomcat started on port(s): 8081 (http) with context path ''
2、在 springboot-02-config-02\src\main\resources\config\application.properties 中配置端口号
server.port=8082
配置好后运行结果为
Tomcat started on port(s): 8082 (http) with context path ''
3、在 springboot-02-config-02\application.properties 中配置端口号
server.port=8083
配置好后运行结果为
Tomcat started on port(s): 8083 (http) with context path ''
4、在 springboot-02-config-02\config\application.properties 中配置端口号
server.port=8084
配置好后运行结果为
Tomcat started on port(s): 8084 (http) with context path ''
互补配置
1、在 springboot-02-config-02\src\main\resources\application.properties 中配置 context-path
#配置项目的访问路径 -- springboot 2.x
server.servlet.context-path=/boot02
#配置项目的访问路径 -- springboot 1.5.9
server.context-path=/boot02
参考:
2、写一个 Controller
package demo.yangxu.springboot.controller;
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello(){
return "hello";
}
}
运行结果为
Tomcat started on port(s): 8084 (http) with context path '/boot02'
浏览器中访问
http://localhost:8084/boot02/hello
即可返回结果 hello
改变默认的配置文件位置
1、在项目外部 D:\springboot_properties 目录中配置 application.properties
server.port=8085
#配置项目的访问路径
server.servlet.context-path=/springboot
2、打包成 jar 包后,在命令行中执行
java -jar springboot-02-config-02-0.0.1-SNAPSHOT.jar --spring.config.location=D:/springboot_properties/application.properties
运行结果为
Tomcat started on port(s): 8085 (http) with context path '/spring
boot'
注意:打包只会使用 springboot-02-config-02\src\main\resources\config\application.properties 和 springboot-02-config-02\src\main\resources\application.properties 这两个位置的配置文件,并形成互补关系。工程根目录下的配置文件不符合 Maven 的目录结构,所以不会打包进去。
3、在浏览器中访问
http://localhost:8085/springboot/hello
即可返回结果 hello