简单了解springboot加载配置文件顺序

下面就是关于“简单了解springboot加载配置文件顺序”的详细攻略。

配置文件的加载顺序

SpringBoot应用在启动时会从多个地方读取配置信息,这些配置信息可能会来自于YAML文件、properties文件、环境变量、命令行参数等。这些配置信息的加载顺序是比较重要的,因为如果在加载配置信息时发生了冲突,就会影响到应用的运行。

根据SpringBoot官方文档的描述,SpringBoot会按照以下顺序来加载配置信息:

  1. 在 SpringApplication 引导类所在的目录下的 /config 文件夹中查找。
  2. 在类路径中查找,包括 jar 包中的 META-INF/spring.factories 文件中 SpringApplicationInitializer 所引用的配置文件以及总类路径下的 application.properties(application.yml) 文件。
  3. 通过 spring.config.namespring.config.location 确定的指定位置来加载。

上面的顺序是从高到低的顺序,也就是说,如果在高优先级的目录下找到了配置文件,就不会继续往下寻找了。

接下来我们来通过两个示例来详细解释一下这个加载顺序。

示例一

假设我们的项目结构如下:

.
├── src
│   ├── main
│   │   ├── java
│   │   ├── resources
│   │   │   ├── application.properties
│   │   │   └── config
│   │   │       └── application.yml

同样的配置在 application.propertiesapplication.yml 中都存在:

application.properties 中的配置:

name=hello

application.yml 中的配置:

name: world

那么根据以上的加载顺序,应用启动的时候会加载优先级高的 /config 目录下的 application.yml 文件,因此,name的值为"world",你可以在任意一个地方通过@Value("${name}")注解来获取这个值。

示例二

接下来,我们考虑另外一种情况:

假设我们的项目结构如下:

.
└── myproject.jar
    ├── application.yml
    └── config
        └── application.properties

同样的配置在 application.propertiesapplication.yml 中都存在:

application.properties 中的配置:

name=hello

application.yml 中的配置:

name: world

由于 /config 目录下的 application.properties 优先级更高,因此启动的时候优先采用name=hello的配置,而不是name=world的配置。

总结

综上所述,SpringBoot会根据上述的优先级来加载并覆盖相应的配置文件,由于配置文件采用了不同的格式,因此,我们可以采用不同的配置文件来适应不同的需求,在实际的开发工作中应该充分了解这种加载顺序,并且灵活地应用到我们的项目中去。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:简单了解springboot加载配置文件顺序 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果

    首屏延迟加载实现方法 首屏延迟加载可以提高网站的加载速度,让用户更快地看到页面的内容。实现方法如下: 步骤一:将首屏需要展示的图片的src属性设置为data-src <img data-src="图片地址" alt="图片描述"> 步骤二:通过JavaScript获取屏幕高度和滚动距离 var client…

    other 2023年6月25日
    00
  • 深度点评五种常见WiFi搭建方案

    @EnableAutoConfiguration是Spring Boot中的一个注解,它的作用是自动配置Spring Boot应用程序所需的所有组件。本文将详细讲解@EnableAutoConfiguration的使用方法和作用,包括注解的使用、配置文件的使用和示例说明。 注解的使用 在Spring Boot应用程序中,可以使用@EnableAutoConf…

    other 2023年5月5日
    00
  • Win7 EXE应用程序图标丢失(快捷方式成了一个没有图标的东西)

    Win7中,如果某个应用程序的图标出现丢失的情况,通常是因为该应用程序对应的图标文件发生了损坏或丢失,或者是应用程序的快捷方式文件被删除或移动导致的。下面是解决该问题的完整攻略: 1. 重建快捷方式 对于出现图标丢失的快捷方式,我们首先要尝试重建该快捷方式。方法如下: 打开应用程序所在的文件夹,找到应用程序的可执行文件(扩展名为.exe) 将该可执行文件拖动…

    other 2023年6月25日
    00
  • python 多进程共享全局变量之Manager()详解

    Python多进程共享全局变量之Manager()详解 在Python中,多进程编程是一种常见的并发编程方式。然而,由于多进程之间的内存是相互独立的,因此默认情况下无法直接共享全局变量。为了解决这个问题,Python提供了Manager()类,它可以创建一个共享的命名空间,使多个进程可以访问和修改其中的变量。 使用Manager()创建共享变量 首先,我们需…

    other 2023年7月29日
    00
  • iOS 七大手势之轻拍,长按,旋转手势识别器方法

    iOS 七大手势之轻拍、长按、旋转手势识别器方法的完整攻略 本文将为您提供iOS七大手势之轻拍、长按、旋转手势识别器方法的完整攻略,包括手势识别器的定义、手势识别器的使用、手势识别器的示例说明等内容。 手势识别器的定义 手势识别器是iOS中的一种机制,用于识别用户在屏幕上的手势操作。iOS中提供了七种手势识别器,包括轻拍、长按、滑动、捏合、旋转、轻扫和屏幕边…

    other 2023年5月6日
    00
  • dos是什么意思?怎么进DOS命令的方法

    以下是对你提出的问题的详细解答。 什么是DOS DOS是Disk Operating System(磁盘操作系统)的缩写。是在早期IBM PC(个人电脑)上广泛使用的操作系统。DOS提供了一组命令,通过命令行(命令提示符)来操作计算机文件和目录,以及运行应用程序。它在早期的计算机历史中发挥了巨大的作用。 进入DOS命令的方法 进入DOS命令有不同的方法,下面…

    other 2023年6月26日
    00
  • php中的function函数详解

    以下是使用标准的Markdown格式文本的PHP中的function函数详解的完整攻略,过程中包含两个示例说明。 PHP中的function函数详解 在PHP中,function函数是一种常用的函数类型,用于封装可重复使用的代码块。以下是一份关于function函数的攻略,包括function函数的定义、使用、参数传递返回值等内容,以及两个示例说明。 1. …

    other 2023年5月10日
    00
  • U盘exFAT U盘无法复制大于4G文件的问题和方法

    U盘exFAT U盘无法复制大于4G文件的问题和方法 问题描述 在使用exFAT格式的U盘时,由于该格式的限制,无法复制大于4GB的单个文件。当我们需要复制一个大于4GB的文件时,会遇到以下错误提示:“文件大于X GB,无法复制到指定路径,请选择其他位置。” 这个问题在处理大型文件时非常麻烦,因此需要一种有效的解决方法。 解决方法 方法1:使用NTFS格式的…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部