16.SpringBoot学习笔记

配置文件的加载位置

Posted by Chen Xingxu on June 20, 2020

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

参考:

https://docs.spring.io/spring-boot/docs/2.3.0.RELEASE/reference/html/appendix-application-properties.html#server-properties

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