当前位置:网站首页 > 技术博客 > 正文

yml配置datasource



Spring Boot 的强大之处在于其高度可配置性,允许开发者根据不同环境和需求定制应用程序的行为。而这一切的核心便是配置文件。Spring Boot 支持多种配置文件格式,其中最常用的三种是 .properties、.yml 和 .yaml。

.properties 文件是 Java 的传统配置文件格式,采用键值对结构,简单易懂。虽然语法简单,但对于复杂的配置结构,容易显得冗长且难以维护。

 

YAML (YAML Ain't Markup Language) 以其简洁、易读的特性,成为现代配置文件的宠儿。.yml 和 .yaml 在 Spring Boot 中等效,都代表 YAML 格式。YAML 使用缩进和冒号来表示层级关系,避免了 .properties 文件中大量的重复键名。

 

YAML 的优势:

  • 简洁易读: 使用缩进代替括号,结构清晰,易于理解和维护。
  • 强大的表达能力: 支持列表、Map 等复杂数据结构,配置更加灵活。
  • 与其他语言兼容性好: YAML 被广泛用于各种编程语言和工具。

Spring Boot 加载配置文件的优先级顺序至关重要,避免配置冲突,确保应用行为符合预期。

以下是从高到低的优先级顺序:

  • 命令行参数: --server.port=8081 (最高优先级)
  • Java 系统属性: -Dserver.port=8081
  • 操作系统环境变量
  • Jar 包外的配置文件:
    • config/application.properties (or .yml/.yaml)
    • application.properties (or .yml/.yaml)
  • Jar 包内的配置文件:
    • BOOT-INF/classes/config/application.properties (or .yml/.yaml)
    • BOOT-INF/classes/application.properties (or .yml/.yaml)
  • @PropertySource 注解: 通过 @PropertySource 注解加载的配置文件。

示例:优先级演示

假设 application.properties 中 server.port=8080,application-dev.yml 中 server.port=8081,命令行参数 --server.port=8082,激活 dev profile。最终端口号将是 8082,因为命令行参数优先级最高。

Spring Boot 提供了强大的多环境配置机制,方便在不同环境(开发、测试、生产等)使用不同的配置。

  • 基于 Profile 的配置文件: application-{profile}.properties 或 application-{profile}.yml (例如:application-dev.yml, application-prod.yml)。
  • spring.profiles.active 属性: 在 application.properties 或 application.yml 中设置 spring.profiles.active 属性来激活特定的 profile。
 

一般情况下,会有两个.yml文件,上边是以引用的方式声明,下边则是对应的属性值,这样写的好处是,能够对于配置信息一目了然,便于开发。

总结

Spring Boot 的配置文件机制灵活而强大,.properties、.yml 和 .yaml 提供了多种选择。理解它们的特性、优先级和多环境配置,并结合最佳实践,可以让你更好地管理应用配置,提高开发效率和代码质量。 感谢各位看官的观看,下期见,谢谢~

  • 上一篇: hikaricp连接池自动恢复
  • 下一篇: json.cpp
  • 版权声明


    相关文章:

  • hikaricp连接池自动恢复2025-05-15 16:01:05
  • sys是什么意思梗2025-05-15 16:01:05
  • 哈夫曼树及哈夫曼编码2025-05-15 16:01:05
  • linux中fi是什么意思2025-05-15 16:01:05
  • 数据库设计三大范式2025-05-15 16:01:05
  • json.cpp2025-05-15 16:01:05
  • 串口助手安卓版2025-05-15 16:01:05
  • 单片机c语言语句2025-05-15 16:01:05
  • timevallée2025-05-15 16:01:05
  • assertive翻译2025-05-15 16:01:05