20、配置文件-yaml的用法

20、配置文件-yaml的用法

YAML(YAML Ain't Markup Language)是一种简洁、易读的数据序列化格式,常用于配置文件。在Spring Boot中,YAML文件(通常命名为`application.yml`或`application.yaml`)用于配置应用程序的各种属性。以下是YAML配置文件的基本用法:

### 基本语法

1. **键值对**

   - 使用冒号`:`分隔键和值,冒号后必须有一个空格。

   - 示例:

     ```yaml

     key: value

     ```

2. **缩进**

   - 使用空格进行缩进,表示层级关系。通常使用2个空格作为缩进单位。

   - 避免使用制表符(Tab),以免引起解析错误。

3. **注释**

   - 使用`#`符号表示注释,从`#`开始到行尾的内容将被忽略。

   - 示例:

     ```yaml

     # 这是一个注释

     key: value

     ```

### 数据类型

1. **纯量(Scalars)**

   - **字符串**:可以加引号,也可以不加。单引号`''`会转义特殊字符,双引号`""`会保留特殊字符的含义。

   - **数字**:整数、浮点数等。

   - **布尔值**:`true`、`false`。

   - **空值**:`null`。

2. **对象(Maps)**

   - 使用缩进表示键值对,键和值之间用冒号分隔。

   - 示例:

     ```yaml

     person:

       name: John

       age: 30

     ```

3. **数组(Lists)**

   - 使用短横线`-`表示数组元素,每个元素占一行。

   - 示例:

     ```yaml

     fruits:

       - apple

       - banana

       - orange

     ```

### 高级用法

1. **多环境配置**

   - 使用`---`分隔不同的环境配置。

   - 通过`spring.profiles`指定激活的环境。

   - 示例:

     ```yaml

     # 公共配置

     server:

       port: 8080

    

     ---

     spring:

       profiles: dev

     server:

       port: 8081

    

     ---

     spring:

       profiles: prod

     server:

       port: 80

     ```

2. **配置属性引用**

   - 使用`${}`引用其他属性的值。

   - 示例:

     ```yaml

     db:

       url: jdbc:mysql://${db.host}:${db.port}/mydb

       host: localhost

       port: 3306

     ```

3. **配置类绑定**

   - 使用`@ConfigurationProperties`注解将YAML配置绑定到Java类。

   - 示例:

     ```java

     @Configuration

     @ConfigurationProperties(prefix = "myapp")

     public class MyAppProperties {

         private String name;

         private int port;

         // 省略getter和setter方法

     }

     ```

### 注意事项

- **大小写敏感**:YAML对键名和值的大小写敏感。

- **缩进一致性**:保持缩进的一致性,避免解析错误。

- **避免重复键**:同一层级下,键名不能重复。

### 示例

以下是一个完整的`application.yml`示例:

```yaml

# 服务器配置

server:

  port: 8080

  servlet:

    context-path: /myapp

# 应用程序名称

spring:

  application:

    name: myapp

# 数据库配置

datasource:

  url: jdbc:mysql://localhost:3306/mydb

  username: root

  password: password

  driver-class-name: com.mysql.cj.jdbc.Driver

# 自定义配置

myapp:

  features:

    - feature1

    - feature2

  security:

    enabled: true

    timeout: 30s

```

在代码中,可以通过`@Value`注解或`@ConfigurationProperties`注解获取这些配置值。

---

通过以上介绍,您应该掌握了YAML配置文件在Spring Boot中的基本用法。YAML的简洁和易读性使其成为配置应用程序的首选格式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值