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

下面给出完整的“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日

相关文章

  • SQL函数将某个字段合并在一起的操作

    对于SQL函数将某个字段合并在一起的操作,可以使用一些字符串函数将视图或者其他查询结果中的多个字段合并成一个字段。以下是常用的字符串函数: CONCAT()函数 该函数用于将多个字符串合并,与“+”运算符具有相同的功能。例如: SELECT CONCAT(‘Hello’, ‘, ‘, ‘World’); 执行结果为: Hello, World 可以将多个字段…

    other 2023年6月25日
    00
  • Big Sur 11.0.1 让2K屏幕开启Hidpi

    Big Sur 11.0.1 让2K屏幕开启Hidpi 随着苹果产品的不断发展,搭载2K屏幕的Macbook成为越来越多人使用的设备,然而在macOS Big Sur 11.0版本中,苹果取消了对屏幕分辨率的设定,这导致许多人无法通过常规方式开启Hidpi,使得2K屏幕下的文本和图像显得过于微小,使用起来不太方便。 在如此背景下,许多开发者陆续推出了解决该问…

    其他 2023年3月28日
    00
  • Win8如何使用软件让内存虚拟硬盘提高电脑运行速度

    Win8如何使用软件让内存虚拟硬盘提高电脑运行速度攻略 1. 了解内存虚拟硬盘 内存虚拟硬盘是一种利用计算机内存作为硬盘缓存的技术,可以提高电脑的运行速度。在Win8中,我们可以使用软件来创建和管理内存虚拟硬盘。 2. 下载并安装软件 首先,我们需要下载并安装一个适用于Win8的内存虚拟硬盘软件。以下是两个示例软件: ImDisk Toolkit:这是一个免…

    other 2023年8月1日
    00
  • vue中封装echarts公共组件过程

    下面是基于Vue2.x版本的封装echarts公共组件的完整攻略。 1. 准备工作 首先,我们需要引入echarts的依赖,这可以通过npm或CDN两种方式实现。 npm方式 在项目的根目录打开终端,输入以下命令安装echarts npm install -S echarts CDN方式 在根目录的index.html中引入echarts的js和css文件 …

    other 2023年6月25日
    00
  • sql根据表名获取字段及对应说明

    要根据表名获取字段及对应说明,需要使用SQL语句中的“DESCRIBE”或是“SHOW COLUMNS”命令。 下面分别介绍这两个方法的使用步骤。 Method 1: 使用DESCRIBE命令 使用DESCRIBE命令,可以查询指定表格下的所有字段信息,包括字段名、数据类型、键类型、是否为null等。 查看表结构 使用DESCRIBE命令可以查看指定表的结构…

    other 2023年6月25日
    00
  • Vue websocket封装实现方法详解

    Vue Websocket封装实现方法详解 Websocket作为一种实时双向通信协议,越来越受到前端开发人员的青睐。Vue作为一种非常流行的前端框架,提供了一种方便的方式来进行Websocket的封装。 本文将详细讲解如何使用Vue来封装Websocket,并提供两个示例。下面将会依次讲解: Websocket的基本使用方法 如何封装Websocket 两…

    other 2023年6月25日
    00
  • ECC 构筑安全可靠的区块链

    ECC 构筑安全可靠的区块链的完整攻略 ECC(Elliptic Curve Cryptography)是一种基于椭圆曲线的加密算法,被广泛应用于区块链技术中。本文将介绍如何使用ECC构筑安全可靠的区块链。 选择合适的椭圆曲线 在使用ECC构筑区块链时,需要选择合适的椭圆曲线。一般来说,选择的椭圆曲线应该满足以下条件: 安全性高:椭圆曲线的参数应该足够大,以…

    other 2023年5月5日
    00
  • centos6.5版本的下载教程

    CentOS 6.5版本的下载教程 CentOS(Community Enterprise Operating System)是一种基于Red Hat Enterprise Linux(简称RHEL或红帽企业级Linux)源代码所编译出的自由及开放源代码的操作系统。本文将详细说明 CentOS 6.5版本的下载过程。 系统要求 在下载CentOS 6.5之前…

    其他 2023年3月29日
    00
合作推广
合作推广
分享本页
返回顶部