当前位置: 首页 > news >正文

SpringBoot-配置加载顺序

目录

前言

样例

内部配置加载顺序

​          样例

小结


前言

我之前写的配置文件,都是放在resources文件夹,根据当前目录下,优先级的高低,判断谁先被加载。但实际开发中,我们写的配置文件并不是,都放在一起的,甚至“东一个,西一个”。这时候,就需要,判断谁先被加载

同一级目录下,优先级:properties >yml  >yaml

样例

在resources 文件夹下,application.yml/.yaml配置文件,application.properties配置文件,同时改变端口号,观察最终端口号。

在resources文件夹,properties配置文件优先级大于 yml 配置文件和yaml配置文件,所以呈现的是properties配置文件下修改的端口号

内部配置加载顺序

注意:,当前模块下的resources,java文件夹都是放在classpath(classes文件夹)的目录下

特点(内部配置文件)

1 越靠近当前项目下的配置文件先执行,后面相同的部分,会被覆盖

(如果有一天,你配置信息,配置错误。你可以通过判断原有配置文件的位置,合理的在你当前项目下或当前项目下config目录下,重写一遍配置文件信息,他会覆盖你写错的配置信息)

2 具有config目录 下的配置文件,先执行

样例

题目:通过在不同的目录或文件夹,写配置文件,观察最终的端口号,判断谁的加载顺序最高?

1 当前项目SpringBoot-day01下config目录下,application.properties配置文件 端口号8081

注意:是当前项目下SpringBoot-day01config目录,而不是当前模块dayo2 ,否则会错误

建一个config目录,复制粘贴properties配置文件

2 当前项目下SpringBoot-day01的根目录,application.properties配置文件 端口号8082

复制粘贴properties配置文件

注意:是当前项目下SpringBoot-day01目录,而不是当前模块dayo2 ,否则会错误

3 classpath的根目录config,application.properties配置文件 端口号8083

在当前模块下resources文件夹,建一个config目录,复制粘贴

4在当前模块下 classpath的根目录,application.properties配置文件 端口号8084

点击运行,观察最终端口号结果

说明,在当前项目下config目录下的配置文件加载顺序最高的

如果,修改是相同内容,根据加载顺序,上面的会覆盖下面的。但如果不相同,加载顺序慢的配置文件,依旧会被加载

样例

我要在day02 模块下,resources文件夹下properties配置文件,修改项目的访问路径

在day02 模块,编写Controller类

点击运行发现,访问路径发生改变,原本默认的为 /,现在则是 /hello

小结

内部配置,是寄托于IDEA编辑器实现的。对于编写配置(命令,实现功能),我们不仅可以在IDEA中实现,还可以打开黑窗口,输入命令,在外部实现。例如把spring项目打成jar包,在“黑窗口”运行,大家可以看我SpringBoot配置--Profile这篇博客的命令行参数内容。

对于内部配置加载顺序,记住三点

1 靠近项目,优先被加载

2 具有config下的文件,在同等情况下,优先被加载

3 同一级目录下,优先级:properties  >yml >yaml 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • servlet的执行顺序
  • 健韵坊(详细项目实战一)Spring系列 + Vue3
  • 探索AWS免费资源:无账号也能体验云计算魅力
  • 网络协议七 应用层 DNS协议 和 DHCP协议 这两个都了解就好
  • ffmpeg的基础命令
  • 基于IMX8M_plus+FPGA+AI监护仪解决方案
  • STM32cubeMX配置Systick的bug
  • js原生模板引擎
  • 浅看MySQL数据库
  • 面试题 08.01. 三步问题
  • PULLTYPE
  • MoExtend: 模态和任务扩展调整的新专家
  • Windows安装mmdet3d v0.17.1(跑通版)
  • Linux-零拷贝技术
  • glm4-9B-chat,使用提示工程激活模型最大潜力
  • [译]前端离线指南(上)
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • ES2017异步函数现已正式可用
  • Git同步原始仓库到Fork仓库中
  • jQuery(一)
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Laravel Telescope:优雅的应用调试工具
  • node.js
  • Node项目之评分系统(二)- 数据库设计
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • SpringBoot几种定时任务的实现方式
  • TCP拥塞控制
  • 对超线程几个不同角度的解释
  • 简单数学运算程序(不定期更新)
  • 删除表内多余的重复数据
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • Java数据解析之JSON
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • ​configparser --- 配置文件解析器​
  • ​学习一下,什么是预包装食品?​
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #### go map 底层结构 ####
  • #Linux(make工具和makefile文件以及makefile语法)
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (C语言)共用体union的用法举例
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (阿里云万网)-域名注册购买实名流程
  • (二)测试工具
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (十三)Flink SQL
  • (转)setTimeout 和 setInterval 的区别
  • .libPaths()设置包加载目录
  • .Net Core和.Net Standard直观理解
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)