YAML 配置的上风在那里 ?思维导图 代码示例(java 架构) ...

打印 上一主题 下一主题

主题 1005|帖子 1005|积分 3015

YAML(YAML Ain’t Markup Language)作为一种配置文件格式,相比其他格式如 XML 或 Properties 文件,具有若干明显的上风。这些上风使得 YAML 在现代开发中,尤其是在 Spring Boot 等框架中非常受欢迎。以下是 YAML 配置的紧张上风,并附有思维导图结构和代码示例。
YAML 配置的上风


  • 易读性

    • 轻便语法:YAML 的语法更加直观,淘汰了冗余符号的使用。
    • 条理结构清楚:通过缩进来表示嵌套关系,使复杂的配置也易于理解。

  • 灵活性

    • 支持多种数据类型:能够表达标量、列表、映射等多种数据结构。
    • 引用与锚点:可以定义一次并在多个地方引用相同的值,淘汰重复。

  • 可扩展性

    • 多文档支持:一个文件中可以包含多个独立的 YAML 文档。
    • 环境特定配置:易于创建和管理针对差别运行环境的配置文件。

  • 工具友好

    • IDE 支持:许多现代 IDE 提供了对 YAML 文件的精良支持,包括语法高亮、主动完成等功能。
    • 版本控制系统兼容:由于其文本性子,很容易与 Git 等版本控制系统一起工作。

  • Spring Boot 集成

    • 简化配置管理:结合 @Value 和 @ConfigurationProperties 注解,简化了属性注入过程。
    • 默认配置覆盖:答应开发者轻松地用自定义配置覆盖默认设置。

思维导图结构

  1. YAML 配置的优势
  2. ├── 易读性
  3. │   ├── 简洁语法
  4. │   └── 层次结构清晰
  5. ├── 灵活性
  6. │   ├── 支持多种数据类型
  7. │   └── 引用与锚点
  8. ├── 可扩展性
  9. │   ├── 多文档支持
  10. │   └── 环境特定配置
  11. ├── 工具友好
  12. │   ├── IDE 支持
  13. │   └── 版本控制系统兼容
  14. └── Spring Boot 集成
  15.     ├── 简化配置管理
  16.     └── 默认配置覆盖
复制代码
示例代码(Java 架构)

使用 YAML 进行简单的配置

  1. # application.yml
  2. server:
  3.   port: 8081
  4. spring:
  5.   datasource:
  6.     url: jdbc:mysql://localhost:3306/mydb
  7.     username: root
  8.     password: secret
  9.     driver-class-name: com.mysql.cj.jdbc.Driver
  10. logging:
  11.   level:
  12.     root: INFO
  13.     org.springframework.web: DEBUG
复制代码
在这个例子中,我们定义了一个典型的 Spring Boot 应用步伐的配置文件,设置了服务器端口、数据源毗连信息以及日记级别等。YAML 的条理结构让这些配置项一目了然。
使用 @Value 注解读取 YAML 配置

  1. import org.springframework.beans.factory.annotation.Value;
  2. import org.springframework.stereotype.Component;
  3. @Component
  4. public class MyComponent {
  5.     private final String dbUrl;
  6.     public MyComponent(@Value("${spring.datasource.url}") String dbUrl) {
  7.         this.dbUrl = dbUrl;
  8.     }
  9.     // getters and setters...
  10. }
复制代码
这里展示了怎样通过 @Value 注解从 YAML 文件中读取配置属性并将其注入到组件中。
使用 @ConfigurationProperties 绑定复杂配置

为了更好地管理复杂的配置结构,可以使用 @ConfigurationProperties 将一组干系的配置绑定到一个 Java 对象上:
  1. import org.springframework.boot.context.properties.ConfigurationProperties;
  2. import org.springframework.stereotype.Component;
  3. @Component
  4. @ConfigurationProperties(prefix = "spring.datasource")
  5. public class DataSourceConfig {
  6.     private String url;
  7.     private String username;
  8.     private String password;
  9.     private String driverClassName;
  10.     // getters and setters...
  11. }
复制代码
确保启用了对 @ConfigurationProperties 的支持(通常已经在 @SpringBootApplication 中包含了),而且可以在必要的地方注入 DataSourceConfig 来访问这些配置。
使用环境特定的 YAML 文件

你可以为差别的运行环境创建专门的配置文件,例如 application-dev.yml 和 application-prod.yml,并通过激活相应的配置文件来加载它们:
  1. # src/main/resources/application-dev.yml
  2. spring:
  3.   profiles: dev
  4.   datasource:
  5.     url: jdbc:h2:mem:testdb
  6.     username: sa
  7.     password:
  8.     driver-class-name: org.h2.Driver
复制代码
然后,在主应用步伐类中激活开发环境:
  1. import org.springframework.boot.SpringApplication;
  2. import org.springframework.boot.autoconfigure.SpringBootApplication;
  3. @SpringBootApplication
  4. public class Application {
  5.     public static void main(String[] args) {
  6.         SpringApplication.run(Application.class, "--spring.profiles.active=dev");
  7.     }
  8. }
复制代码
注意事项



  • 缩进敏感:YAML 对缩进非常敏感,因此请确保精确的缩进格式以避免解析错误。
  • 注释:使用 # 符号添加注释。
  • 引号:虽然大多数情况下不必要引号,但对于包含特殊字符的字符串值,照旧应该使用双引号或单引号包裹起来。
  • 多行字符串:可以通过 | 或 > 符号来表示多行文本。
通过使用上述特性,YAML 成为了一个强大且灵活的配置管理工具,特别是在 Spring Boot 环境下,它不仅进步了配置文件的可读性和维护性,还增强了开发效率。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81429

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表