06-基础配置-yaml格式详解

问题导入

什么是yaml,和properties有什么区别?

  • YAML(YAML Ain't Markup Language),一种数据序列化格式

  • 优点:

    • 容易阅读

    • 容易与脚本语言交互

    • 以数据为核心,重数据轻格式

  • YAML文件扩展名

    • .yml(主流)

    • .yaml

2.1 yaml语法规则
  • 大小写敏感

  • 属性层级关系使用多行描述,每行结尾使用冒号结束

  • 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)

  • 具体来说,当我们说“不允许使用Tab键,只允许使用空格”时,我们指的是在表示层级关系的缩进部分,应该只使用空格键输入空格,而不应该使用Tab键。这是因为不同的系统和编辑器可能会以不同的方式解释和显示Tab键,这可能会导致缩进看起来不一致或者混乱。

    例如,有些编辑器可能会将一个Tab键解释为4个空格,而其他编辑器可能只解释为2个空格。这种不一致性可能会导致YAML文件中的层级关系看起来混乱。而使用空格进行缩进则可以确保无论在哪里查看,都能保持一致的层级关系显示。

  • 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)

  • #表示注释

  • 核心规则:数据前面要加空格与冒号隔开

2.2 yaml数组数据
  • 数组数据在数据书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔

  • application.yml文件

    enterprise:
      name: lalalala
      age: 12
      subjects:
        - java
        - 大数据
        - 前端
    2.3 yaml数据读取
  • 使用@Value读取单个数据,属性名引用方式:${一级属性名.二级属性名……}

    package org.example.controller;
    
    
    import org.example.config.Enterprise;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.core.env.Environment;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * @author Administrator
     * @ClassName BookController
     * @Version 1.0
     */
    @RestController
    @RequestMapping("/books")
    public class BookController {
    
        @Value("${enterprise.name}")
        private String name;
    
        @Value("${enterprise.age}")
        private Integer age;
    
        @Value("${enterprise.subjects[1]}")
        private String subjects1;
    
        @Autowired
        private Environment environment;
    
        @Autowired
        private Enterprise enterprise;
    
        @RequestMapping("/save")
        public String save() {
    
            //使用@Value注入
            System.out.println("name:" + name);
            System.out.println("age:" + age);
            System.out.println("subject1:" + subjects1);
    
            System.out.println("-----------------------");
    
            //注入environment,调用配置信息
            System.out.println("name:" + environment.getProperty("enterprise.name"));
            System.out.println("age:" + environment.getProperty("enterprise.age"));
            System.out.println("subjects2:" + environment.getProperty("enterprise.subjects[2]"));
    
    
            System.out.println("------------------------");
            System.out.println(enterprise);
    
            return "hello,springboot!";
        }
    }
    
    package org.example.config;
    
    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    
    /**
     * @author Administrator
    自定义对象封装指定数据【常用】
     */
    @Data
    @Component
    @ConfigurationProperties(prefix ="enterprise")
    public class Enterprise {
        private String name;
        private Integer age;
        private String[] subjects;
    }
    

    启动项目,访问接口,后端 控制台打印

  • name:lalalala
    age:12
    subject1:大数据
    -----------------------
    name:lalalala
    age:12
    subjects2:前端
    ------------------------
    Enterprise(name=lalalala, age=12, subjects=[java, 大数据, 前端])

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python的yaml文件格式是一种用于序列化和反序列化数据的文件格式。YAML是一种人类可读的数据序列化格式,它使用简洁的语法来表示数据结构。YAML文件可以包含各种数据类型,包括字符串、数字、布尔值、列表和字典等。在Python中,可以使用yaml模块来读取和保存yaml文件。通过导入yaml模块,可以使用官方的导入方法来兼容Windows和Linux平台。使用yaml模块的load函数可以读取yaml文件的内容,并将其转换为Python对象。例如,可以使用以下代码读取一个yaml文件并打印其内容: ```python import yaml with open("test.yaml", "r") as yaml_file: data = yaml.load(yaml_file) print("data_type:", type(data)) print("data_content:\n", data) ``` 这段代码使用了yaml模块的load函数来读取test.yaml文件的内容,并将其转换为Python对象。然后,可以通过打印data的类型和内容来查看读取到的数据。 #### 引用[.reference_title] - *1* [yaml——python数据序列化文件格式解析包的介绍和使用](https://blog.csdn.net/ZH13114130815/article/details/126930216)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [python基础——python解析yaml类型文件](https://blog.csdn.net/weixin_54696666/article/details/115034027)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敲代码的翠花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值