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

yizhihongxing

关于“详解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日

相关文章

  • iframe高度自适应不要滚动条

    iframe高度自适应不要滚动条 在网页开发中,经常会使用iframe标签来嵌入其他网页或内容。但是,当嵌入的内容高度超过iframe的高度时,会出现滚动条,影响用户体验。本攻略将介绍如何实现iframe高度自适应,不出现滚动条的方法。 方法一:使用JavaScript动态设置iframe高度 使用JavaScript动态设置iframe的高度是一种常见的方…

    other 2023年5月7日
    00
  • Mysql解决USE DB堵塞详解

    Mysql的USE DB堵塞问题是由于在Mysql的InnoDB引擎中,当一个事务持有一张表的共享锁时,其他所有事务都需要等待此锁被释放才能进行操作,进而导致堵塞的问题。其中,USE DB堵塞是指由于在一个事务中多次选择不同的数据库造成的堵塞。下面是解决这一问题的攻略: 步骤一:发现USE DB堵塞问题 可以通过指令 “show engine innodb …

    other 2023年6月27日
    00
  • Apache Hudi数据布局黑科技降低一半查询时间

    Apache Hudi数据布局黑科技降低一半查询时间攻略 Apache Hudi是一个开源的数据湖解决方案,它提供了一种数据布局黑科技,可以显著降低查询时间。下面是详细的攻略,包含两个示例说明。 步骤1:选择合适的数据布局 选择合适的数据布局是提高查询性能的关键。Apache Hudi提供了两种主要的数据布局:Copy-on-Write(COW)和Merge…

    other 2023年9月6日
    00
  • Sublime Text 打开Java文档中文乱码的解决方案

    下面是 “Sublime Text 打开Java文档中文乱码的解决方案”的完整攻略。 问题描述 在使用 Sublime Text 打开 Java 文档时,中文可能会出现乱码,给代码阅读带来不便。 问题原因 Sublime Text 默认编码是 UTF-8,而 Java 文档的编码可能是 GBK 或 GB2312,导致 Sublime Text 打开时不识别中…

    other 2023年6月26日
    00
  • 腾讯云万象优图每个账户提供50G的图片存储(支持黄图检测)

    腾讯云万象优图:每个账户提供50G的图片存储(支持黄图检测) 随着互联网和移动互联网的发展,图片已经成为非常重要的一种媒体形式,几乎所有网站和应用都需要使用大量的图片。而图片的存储和管理也成为了一个很重要的问题。为此,腾讯云推出了万象优图服务,为用户提供了强大的图片处理和存储能力。 什么是腾讯云万象优图? 腾讯云万象优图是一款基于腾讯云对象存储COS服务的智…

    其他 2023年3月28日
    00
  • Java如何给变量取合适的命名

    Java变量命名攻略 在Java中,给变量取合适的命名是一项重要的编程实践。良好的命名可以提高代码的可读性和可维护性。下面是一些关于如何给变量取合适命名的攻略: 1. 使用有意义的名称 变量的名称应该能够清晰地表达其用途和含义。避免使用单个字母或无意义的缩写作为变量名。相反,使用描述性的名称,以便其他开发人员能够轻松理解变量的用途。 示例1: // 不好的命…

    other 2023年8月5日
    00
  • 聊聊java变量的初始化之后的默认值

    让我来详细讲解一下 Java 变量初始化后的默认值。 Java 变量初始化后的默认值 Java 中,变量在被定义时,如果没有赋予初始值,Java 会为其赋予一个默认值。这个默认值在变量定义时就已经赋予了,即使没有显式地对变量进行初始化,Java 也不会报错。 变量的类型决定了它的默认值。下面是 Java 基本数据类型变量在不经过初始化的情况下的默认值: bo…

    other 2023年6月20日
    00
  • awvs破解安装

    AWVS破解安装 AWVS(Acunetix Web Vulnerability Scanner)是一款功能强大的Web漏洞扫描器。AWVS可以快速扫描并发现Web应用程序的各种漏洞,从而帮助网站管理员及时消除安全威胁。 然而,AWVS是一款商业软件,如果要正式使用,需要付费购买授权。不过,在网络上有很多破解版的AWVS,可以通过简单的操作来破解安装。本文将…

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