springboot配置文件的加载顺序解析

yizhihongxing

下面给出完整的“springboot配置文件的加载顺序解析”攻略。

配置文件加载规则

在Spring Boot应用启动时,会加载一组规则,来确定加载哪些属性、哪些配置文件。按照如下的加载规则:

  1. 所有指定的配置文件会按照以下顺序读取:

  2. file:./config/ 目录下的全部配置文件

  3. file:./ 目录下的全部配置文件
  4. classpath:/config/ 目录下的全部配置文件
  5. classpath:/ 目录下的全部配置文件
  6. 配置路径可以通过指定 spring.config.locationspring.config.name 系统属性来设置

  7. 配置文件会按照以下优先级读取,优先级由高到低:

  8. 项目根目录下的 bootstrap.ymlbootstrap.properties 文件

  9. 项目根目录下的 application.ymlapplication.properties 文件
  10. 在优先级低的文件中,根据 spring.profiles.active 属性来读取指定环境的配置文件

示例说明

为了进一步说明配置文件加载顺序,我们给出以下两个示例:

示例1

假设现在我们有application.yml的配置文件,内容如下:

server:
  port: 9090
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: root
    password:12345

运行该应用时,会自动读取这个文件并加载文件中的配置项。如果我们在项目根目录下设置了一个application--dev.yml配置文件,内容如下:

server:
  port: 9091
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: dev_user
    password:dev_password

如果在运行时指定了dev环境:--spring.profiles.active=dev,则会优先读取application--dev.yml中的配置,即端口号会变成9091,数据库用户名和密码会变成dev_userdev_password

示例2

假设我们在项目根目录下再设置了一个bootstrap.properties文件,内容如下:

spring.application.name=test-app
spring.cloud.config.uri=http://localhost:8888

再假设我们在http://localhost:8888上运行了一个config server,它能够提供给我们应用程序的配置文件。例如,它提供了一个test-app--dev.yml配置文件,内容如下:

server:
  port: 9092
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: dev_user
    password:dev_password

启动应用时,会先加载bootstrap.properties文件,并读取其中的spring.cloud.config.uri属性,然后通过这个uri访问配置服务器,获取最终的配置文件。在这个例子中,即会从配置服务器中获取test-app--dev.yml,并读取该文件中的配置项。最终配置将是:

server:
  port: 9092
spring:
  application:
    name: test-app
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: dev_user
    password:dev_password

以上就是Spring Boot配置文件加载顺序的完整攻略,希望对你有所帮助。

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

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

相关文章

  • Win10创意者更新Version 1703原版ISO镜像下载地址

    Win10创意者更新Version 1703原版ISO镜像下载攻略 Win10创意者更新Version 1703是Windows 10操作系统的一个重要版本,如果你需要下载其原版ISO镜像,可以按照以下步骤进行操作: 步骤一:准备工作 在开始下载之前,确保你已经准备好以下内容: 一台可以上网的电脑 稳定的网络连接 足够的存储空间来保存ISO镜像文件 步骤二:…

    other 2023年8月4日
    00
  • pgsql实现绝对值

    当然,我很乐意为您提供有关“PostgreSQL实现绝对值”的完整攻略。以下是详细的步骤和两个示例: 1 ABS函数 在 PostgreSQL 中,可以使用 ABS 函数来计算一个数的绝对值。ABS 函数的语法如下: ABS(numeric) 其中,numeric 是要计算绝对值的数值。 以下是一个使用 ABS 函数的示例: SELECT ABS(-10);…

    other 2023年5月6日
    00
  • flash cs6数组怎么在指定位置加换行? flash数组换行的教程

    要在Flash CS6数组中实现在指定位置加换行,需要使用一些字符串处理的方法,具体步骤如下: 1. 创建数组 在Flash CS6中,我们可以使用以下代码创建一个数组: var myArray:Array = new Array(); 2. 添加字符串 我们可以使用push()方法将字符串添加到数组中: myArray.push("Hello&q…

    other 2023年6月26日
    00
  • C语言各种操作符透彻理解下篇

    C语言各种操作符透彻理解下篇 在C语言中,操作符是非常重要的概念。下面我们就来深入理解C语言各种操作符。 常见的二元操作符 逻辑运算符 逻辑运算符主要有&&、||、!三种,其中&&表示逻辑与,当两个操作数都为真(非零)时结果为真;||表示逻辑或,当两个操作数有一个为真时结果为真;!表示逻辑非,当操作数为假(零)时结果为真。 下…

    other 2023年6月27日
    00
  • Android 控件GridView使用案例讲解

    Android 控件GridView使用案例讲解 简介 GridView 是 Android 中常用的控件,用于显示多个相同类型的数据项。它类似于网格布局,将数据按行列方式排列,每个数据项都展示在一个格子里,用户可以通过滑动、缩放、选择来操作它们。在本篇文章中,我们将会讲解 GridView 的使用,包括创建、配置、自定义和优化等。 创建 在 Android…

    other 2023年6月26日
    00
  • OPPOReno10Pro+开发者选项在哪 OPPOReno10Pro+进入开发者模式教程

    下面是关于“OPPOReno10Pro+开发者选项在哪 OPPOReno10Pro+进入开发者模式教程”的完整攻略: 一、OPPOReno10Pro+开启开发者选项 打开 OPPO Reno 10 Pro+ 手机的 “设置” 应用,下拉找到屏幕底部 “关于手机” 的按钮并点击。 在 “关于手机” 页面中,找到手机的 “版本号” 信息,进行连续点击 “版本号”…

    other 2023年6月26日
    00
  • Go语言七篇入门教程六网络编程

    在Go语言中,网络编程是很重要的一部分,可以帮助我们实现各种网络应用。在这篇教程中,我们将讲解Go语言的网络编程。本文会阐述Go语言网络编程的一些基本知识,如TCP、UDP协议、Socket编程等,可以让读者全面了解网络编程的原理和实现方法。 第一篇:基础知识和基本概念 我们首先需要了解网络编程中一些基本的概念和知识,例如套接字(Socket)、IP地址和端…

    other 2023年6月27日
    00
  • varstatus属性

    varstatus属性是ASP.NET中的一个内置属性,用于获取或设置当前页面的状态。以下是varstatus属性的完整攻略: 获取或设置varstatus属性 varstatus属性是一个内置属性,用于获取或设置当前页面的状态。可以通过在页面指令中设置varstatus属性来使用它。以下是一个示例,演示如何设置varstatus属性: <%@ Pag…

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