SpringBoot配置文件、静态资源不同文件目录加载优先级

本文详细介绍了Spring Boot配置文件的扫描优先级,包括默认位置、自定义加载以及不同环境的配置切换。同时,也阐述了静态资源的扫描优先级,如webjars、resources、static和public目录的加载顺序,并提到了templates目录在新版本中的变化。阅读原文以获取更多关于Spring Boot配置和静态资源管理的知识。
摘要由CSDN通过智能技术生成

一、Spring Boot 配置文件扫描优先级

1、Spring Boot 启动会扫描以下位置的 application.properties或者 application.yml/yaml 文件作为 Spring Boot 的默认配置文件
(1)当前jar包所在目录下的子目录 config 文件夹中下的子目录中的;
注:第一条配置只支持Liunx操作系统生效,部署项目也是在此环境中,此点可以忽略
(2)当前jar包所在目录下的子目录 config 文件夹中;
(3)当前jar包所在目录同级目录下;
在这里插入图片描述
在这里插入图片描述

(4)类路径(resource资源文件或者java目录下)下的子目录 config 文件夹中;
(5)类路径(resource资源文件或者java目录下)下(项目默认创建的配置文件)。
在这里插入图片描述

启动 Spring Boot 项目扫描这四个位置的配置文件的顺序优先级为:

优先级 1:当前jar包所在目录下的子目录 config 文件夹中下的子目录
优先级 2:当前jar包所在目录下的子目录 config 文件夹中
优先级 3:当前jar包所在目录同级目录下
优先级 4:类路径(resource资源文件或者java目录下)下的子目录 config 文件夹中
优先级 5:类路径(resource资源文件或者java目录下)下的配置文件(默认创建的配置文件位置

官方文档说明:
在这里插入图片描述

      也就是假如说当前项目下的 config 文件夹目录中有 application.yaml/yml 或者 application.properties 就直接扫描到并加载这个配置文件了,优先级由高到底,高优先级的配置会覆盖低优先级的配置。

那么就这样写死了吗 ?就不可以改变这个优先级顺序了吗 ?

       像 SpringBoot 这么优秀的框架,肯定是可以自定义的。我们可以指定位置加载配置文件,可以通过 spring.config.location 来改变默认的配置文件位置。项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置;这种情况,一般是后期运维做的多,相同配置,外部指定的配置文件优先级最高。

java -jar spring-boot-config.jar --spring.config.location=\
D:springboot/application.properties

或者

java -jar myproject.jar --spring.config.location=\
optional:classpath:
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值