tsx81429 发表于 2024-12-12 02:06:57

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

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


[*] 易读性

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

[*] 灵活性

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

[*] 可扩展性

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

[*] 工具友好

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

[*] Spring Boot 集成

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

思维导图结构

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

使用 YAML 进行简单的配置

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

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class MyComponent {

    private final String dbUrl;

    public MyComponent(@Value("${spring.datasource.url}") String dbUrl) {
      this.dbUrl = dbUrl;
    }

    // getters and setters...
}
这里展示了怎样通过 @Value 注解从 YAML 文件中读取配置属性并将其注入到组件中。
使用 @ConfigurationProperties 绑定复杂配置

为了更好地管理复杂的配置结构,可以使用 @ConfigurationProperties 将一组干系的配置绑定到一个 Java 对象上:
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "spring.datasource")
public class DataSourceConfig {

    private String url;
    private String username;
    private String password;
    private String driverClassName;

    // getters and setters...
}
确保启用了对 @ConfigurationProperties 的支持(通常已经在 @SpringBootApplication 中包含了),而且可以在必要的地方注入 DataSourceConfig 来访问这些配置。
使用环境特定的 YAML 文件

你可以为差别的运行环境创建专门的配置文件,例如 application-dev.yml 和 application-prod.yml,并通过激活相应的配置文件来加载它们:
# src/main/resources/application-dev.yml
spring:
profiles: dev
datasource:
    url: jdbc:h2:mem:testdb
    username: sa
    password:
    driver-class-name: org.h2.Driver
然后,在主应用步伐类中激活开发环境:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
      SpringApplication.run(Application.class, "--spring.profiles.active=dev");
    }
}
注意事项



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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: YAML 配置的上风在那里 ?思维导图 代码示例(java 架构)