<SpringBoot>配置文件加载优先级

springboot启动会扫描以下位置的application.properties或者application.yaml文件作为Spring boot的默认配置文件

优先级由高到低顺序为:

file:./config/
file:./
classpath:/config/
classpath:/

如图所示:
请添加图片描述

如果不同优先级的配置文件中存在相同的属性配置,那么高优先级的配置文件中的配置将覆盖低优先级的配置文件中的配置

同时,SpringBoot会将这四个位置的配置文件全部加载,因此会形成一种互补配置,即:如果配置的类型相同,如四个配置文件都配置了端口号server.port,那么将会使用四个配置文件中配置了server.port的最高优先级配置文件的server.port配置;而互补配置体现在四个配置文件配置不相交的属性,如最高优先级配置文件配置了server.port=8084,最低优先级配置文件配置了项目的访问路径server.servlet.context-path=/boot

创建一个HelloController

@ResponseBody
@Controller
public class HelloController {

    @RequestMapping("/hello")
    public String hello()
    {
        return "sdfghjkl Hello";
    }
}

当前配置情况为:最高优先级配置文件配置了server.port=8084,最低优先级配置文件配置了项目的访问路径server.servlet.context-path=/boot

那么此时应该访问的端口就是8084端口而不是8080端口,但是访问http://localhost:8084/hello会报404错误,因为在低优先级的配置文件中我们指定了访问路径,因此应该访问http://localhost:8084/boot/hello


扩展:

我们还可以通过spring.config.location来改变默认的配置文件位置

项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置;指定配置文件和默认加载的这些配置文件共同起作用形成互补配置;

java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --spring.config.location=D:/application.properties

spring-boot-02-config-02-0.0.1-SNAPSHOT.jar 为项目打包名称
D:/application.properties指定的配置文件的位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值