简单了解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中的作用域链 作用域链是JavaScript中一个重要的概念,它决定了变量和函数的可访问性。在理解作用域链之前,我们需要先了解作用域和词法环境的概念。 作用域 作用域是指变量和函数的可访问范围。在JavaScript中,有全局作用域和局部作用域两种。 全局作用域:全局作用域是指在整个JavaScript程序中都可以访问的变量和函数。它在程序开始执行时创建…

    other 2023年8月19日
    00
  • js实现图片懒加载效果

    图片懒加载效果是指当用户滚动页面时,只有当图片进入浏览器可视区域内时才进行图片加载,以提升网站的加载速度和用户的体验。以下是实现图片懒加载效果的完整攻略: 1. 设置图片占位符 在HTML中,为需要进行懒加载的图片设置占位符,通常可以使用下面两种方式: 直接在img标签中设置占位符,例如:<img src=”placeholder.png” data-…

    other 2023年6月25日
    00
  • win系统中XP必联电子阿里智能路由器动态IP上网的详细设置教程

    Win系统中XP必联电子阿里智能路由器动态IP上网的详细设置教程 本教程将详细介绍如何在Windows XP操作系统中使用XP必联电子阿里智能路由器进行动态IP上网设置。以下是完整的攻略: 步骤一:连接路由器 将XP必联电子阿里智能路由器连接到电源,并确保其正常启动。 使用网线将路由器的LAN口与计算机的网卡连接。 步骤二:访问路由器设置页面 打开任意浏览器…

    other 2023年7月31日
    00
  • Linux的netstat命令详解

    Linux的netstat命令详解 简介 netstat是Linux网络配置和排错工具的重要组成部分之一,它可以用来查看网络状态,以及相关的网络统计信息。常见的使用场景有了解网络连接情况、排查网络故障等。 本文将对netstat命令的常用参数及示例进行详细讲解,以帮助读者更好地了解和使用这个命令。 常用参数 下面是netstat常用的参数: -a,显示所有连…

    other 2023年6月27日
    00
  • Android中ImageView实现选择本地图片并显示功能

    当在Android中使用ImageView实现选择本地图片并显示功能时,可以按照以下步骤进行操作: 添加权限:首先,在AndroidManifest.xml文件中添加读取外部存储器权限。在<manifest>标签内添加以下代码: <uses-permission android:name=\"android.permission.…

    other 2023年8月25日
    00
  • .Net开发人员常犯的6大安全错误

    .Net开发人员常犯的6大安全错误解析 随着计算机技术日益发展,互联网已经深深地融入到我们的生活之中,而安全问题也愈发重要。 .Net框架是一种常见的开发框架之一,因此 .Net开发人员在开发过程中,需要了解常见的安全问题,避免犯下以下6种常见的安全错误。 错误1:未授权的访问 未授权的访问是一种常见的安全问题。 .Net开发人员在设计应用程序时,应该考虑用…

    other 2023年6月28日
    00
  • WPS怎么快速生成文件夹? WPS表格和TXT文本生成多个文件夹的教程

    WPS怎么快速生成文件夹,可以通过WPS表格和TXT文本来实现。下面我们来详细讲解如何进行操作。 使用WPS表格批量生成文件夹 打开WPS表格,新建一个空表格。 在第一行第一列输入“名称”,在第一行第二列输入“路径”。 在第二行第一列输入一个文件夹的名称(例如:文件夹1),在第二行第二列输入该文件夹的路径(例如:D:/文件夹1)。 点击第二行第一列的单元格,…

    other 2023年6月26日
    00
  • C语言柔性数组详解

    C语言柔性数组详解 什么是柔性数组 柔性数组是指在结构体中的一个成员是一个数组,而数组的大小是在运行时动态分配的。在C99标准中,引入了柔性数组的概念,用来处理动态数组的需求。柔性数组成员必须放在结构体最后面,并且数组的大小不能指定。 定义柔性数组 柔性数组的定义需要一个明确的长度,这样做是为了分配内存。由于在定义时无法确定柔性数组的长度,因此柔性数组需要使…

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