详解Spring Boot加载properties和yml配置文件

关于“详解Spring Boot加载properties和yml配置文件”的攻略,我将分为以下几个部分进行详细讲解:

  1. Spring Boot的默认配置文件名与位置
  2. properties文件的加载方式
  3. yml文件的加载方式
  4. 示例1:properties文件和yml文件混合使用
  5. 示例2:指定profile加载不同的配置文件

接下来我将一一进行展开说明。

1. Spring Boot的默认配置文件名和位置

Spring Boot可以通过自动配置机制来加载应用程序的默认配置信息。其中,Spring Boot默认会加载如下两个文件:

  • application.properties
  • application.yml

这两个文件的位置需要放在以下几个位置去寻找:

  • classpath:/config/
  • classpath:/
  • file:./config/
  • file:./

其中以“classpath”开头的路径表示在classpath中寻找,以“file”开头的路径表示在当前文件系统中寻找。

如果在这些位置下都没有找到对应的文件,则Spring Boot会按照以下顺序进行尝试加载:

  • 如果指定了spring.config.name的话,会严格按照这个名称进行加载;
  • 如果指定了spring.config.location的话,则会按照其中定义的路径进行查找。

2. properties文件的加载方式

properties文件采用key=value的键值对的形式进行配置。以下是一个简单的properties文件样例:

# application.properties

server.port=8080
server.context-path=/demo
db.url=jdbc:mysql://localhost:3306/test
db.username=root
db.password=123456

在Spring Boot应用启动时,会自动将这个文件中的配置信息加载到应用程序中。在代码中通过@Value注解进行依赖注入即可。

3. yml文件的加载方式

yml文件采用缩进来表示层级关系的形式进行配置。以下是一个简单的yml文件样例:

# application.yml

server:
  port: 8080
  context-path: /demo
db:
  url: jdbc:mysql://localhost:3306/test
  username: root
  password: 123456

其中,以“server”开头的配置会绑定到ServerProperties类中,以“db”开头的配置会绑定到DataSourceProperties类中。同样可以使用@Value注解进行依赖注入。

4. 示例1:properties文件和yml文件混合使用

一个常见的配置方式是将业务相关的配置和数据库相关的配置分开存放。以下是一个示例:

application.properties:

server.port=8080
server.context-path=/demo

database.yml:

db:
  url: jdbc:mysql://localhost:3306/test
  username: root
  password: 123456

在代码中同样可以使用@Value注解进行依赖注入:

@Value("${server.port}")
private int port;

@Value("${server.context-path}")
private String contextPath;

@Value("${db.url}")
private String dbUrl;

@Value("${db.username}")
private String dbUsername;

@Value("${db.password}")
private String dbPassword;

5. 示例2:指定profile加载不同的配置文件

Spring Boot支持使用不同的profiles来加载不同的配置文件。例如,我们可以创建以下三个文件:

  • application-default.yml:默认配置文件,优先级最低;
  • application-dev.yml:dev环境下的配置文件;
  • application-prod.yml:prod环境下的配置文件;

在启动应用程序时,可以通过指定spring.profiles.active来加载对应的配置文件,例如:

java -jar myapp.jar --spring.profiles.active=dev

这时将会自动加载application-default.yml、application.yml和application-dev.yml文件中的配置信息。

以上就是关于“详解Spring Boot加载properties和yml配置文件”的完整攻略,希望能够对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Spring Boot加载properties和yml配置文件 - Python技术站

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

相关文章

  • Java方法覆盖重写实现原理解析

    Java方法覆盖重写实现原理解析 当子类继承自父类并且重写了父类中的某个方法,那么子类的方法就覆盖了父类的方法,称为方法的重写。方法重写是Java中实现多态的关键。本文将详细讲解Java方法覆盖重写的实现原理。 原理 方法覆盖重写是实现多态的一种重要方式。实现方法覆盖重写需要满足两个条件: 子类中的方法必须和父类中的方法有相同的名称、参数列表和返回值类型。 …

    other 2023年6月26日
    00
  • python读取mat文件生成h5文件的实现

    Python读取mat文件生成h5文件的实现可以分为以下几个步骤: 安装必要的Python库 在Python中读取mat文件和生成h5文件需要使用相应的库,例如scipy、h5py等。先使用以下命令安装这些库: pip install scipy pip install h5py 读取mat文件 使用scipy库中的io.loadmat()函数读取mat文件…

    other 2023年6月27日
    00
  • C++深入讲解初始化列表的用法

    C++深入讲解初始化列表的用法 在C++中,初始化列表是一种用来初始化成员变量的特殊语法,这种语法可以让程序员在构造函数中更方便地初始化成员变量,从而提高代码的可读性和可维护性。 初始化列表的基本语法 初始化列表的语法如下: [构造函数名]::[构造函数](参数列表) : [成员变量1](初始值1), [成员变量2](初始值2), …, [成员变量n](…

    other 2023年6月20日
    00
  • Java 类加载过程与类加载器详细介绍

    让我为您讲解一下 “Java 类加载过程与类加载器详细介绍” 的完整攻略。 什么是类加载? Java 语言是一种面向对象程序设计语言,其中最基本的组成单位是类。在 Java 语言中,类是由编译器编译 Java 代码后生成的字节码文件,这些字节码文件最终是由 Java 虚拟机来执行的。而在 Java 虚拟机的执行过程中,类加载器则负责将类文件加载到 JVM 中…

    other 2023年6月25日
    00
  • Win10一周年更新14393.0已上传到Windows Update服务器(含下载地址)

    Win10一周年更新14393.0攻略 Win10一周年更新14393.0是Windows 10操作系统的一个重要更新版本。本攻略将详细介绍如何获取该更新并提供下载地址。以下是攻略的步骤: 步骤一:检查更新 首先,确保你的计算机已连接到互联网。然后按照以下步骤检查更新: 打开“设置”应用程序。你可以在开始菜单中找到它。 在“设置”窗口中,点击“更新和安全”选…

    other 2023年8月5日
    00
  • Win10系统同时重命名多个文件的方法

    当我们需要重命名多个文件时,手动一个一个地修改显然效率很低。但是,Windows 10提供了一种非常简单的方法来同时重命名多个文件。下面是具体的步骤: 步骤1:选择需要重命名的文件 先在文件夹中选中要重命名的文件。可以通过按住Ctrl键并单击每个要选择的文件,一次选择多个文件。 步骤2:右键单击选中的文件,选择“重命名” 在选中的文件中,右键单击其中一个,然…

    other 2023年6月26日
    00
  • 解决java idea新建子目录时命名不是树形结构的问题

    首先,Java在Idea中新建子目录时,出现名称不是树形结构的问题,可能是因为没有使用合适的分隔符导致的。为了解决这个问题,我们可以采取以下方式: 1. 使用正确的分隔符 在Idea中,正确的分隔符是”/”,而不是”\”。将分隔符改为”/”,即可避免出现命名不是树形结构的问题。 示例说明: 假设我们在Idea中新建了一个名为”test”的工程,在其中新建子目…

    other 2023年6月27日
    00
  • jQuery简单实现禁用右键菜单

    当我们需要禁用网页上的右键菜单时,可以使用jQuery来实现这一功能。下面是使用jQuery简单实现禁用右键菜单的完整攻略: 1. 在HTML文件中引入jQuery库文件 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <tit…

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