zoukankan      html  css  js  c++  java
  • yaml语法学习

    配置文件

    SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的
    application.properties
    语法结构 :key=value
    application.yml
    语法结构 :key:空格 value

    配置文件的作用 :修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了;

    yarm基础语法

    yaml语言以数据作为中心,而不是以标记语言为重点!

    传统xml配置:

    <server>
        <port>8081<port>
    </server>
    

    yaml配置:

    server:
      prot: 8080
    

    yaml语法要求严格!
    1、空格不能省略
    2、以缩进来控制层级关系,只要是左边对齐的一列数据都是同一个层级的。
    3、属性和值的大小写都是十分敏感的。

    ①字面量:普通的值 [数字,布尔值,字符串]
    字面量直接写在后面就可以,字符串默认不用加上双引号或者单引号;
    k: v
    注意:

    • “ ” 双引号,不会转义字符串里面的特殊字符 , 特殊字符会作为本身想表示的意思;
      比如 :name: "hello world" 输出 :hello 换行 world
    • '' 单引号,会转义特殊字符 , 特殊字符最终会变成和普通字符一样输出
      比如 :name: ‘hello world’ 输出 :hello world
      ②对象、Map(键值对)

    对象、Map格式

    k: 
        v1:
        v2:
    

    在下一行来写对象的属性和值得关系,注意缩进;比如:

    student:
        name: zhangsan
        age: 13
    

    行内写法

    student: {name: zhangsan,age: 13}
    

    ③数组( List、set )
    用 - 值表示数组中的一个元素,比如:

    pets:
     - cat
     - dog
     - pig
    

    行内写法

    pets: [cat,dog,pig]
    

    修改SpringBoot的默认端口号
    配置文件中添加,端口号的参数,就可以切换端口;

    server:
      port: 8082
    

    注入yaml配置文件
    1、在springboot项目中的resources目录下新建一个文件 application.yml

    hello:
      name: zhangsan
      age: 13
    

    2、编写一个实体类 HelloEntity;

    package com.example.springstudy.entity;
    import lombok.Data;import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    @Data
    //注册bean
    @Component
    /*
    @ConfigurationProperties作用:
    将配置文件中配置的每一个属性的值,映射到这个组件中;
    告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定
    参数 prefix = “hello” : 将配置文件中的hello下面的所有属性一一对应
    如果没有@Component注解,@ConfigurationProperties会出现红色波浪线
    */
    @ConfigurationProperties(prefix = "hello")
    public class HelloEntity {
        private String name;
        private Integer age;
    }
    
    

    @ConfigurationProperties需要用到下面的依赖(导入配置文件处理器)

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>
    

    配置完成后,去测试类中测试一下:

    package com.example.springstudy.controller;
    
    import com.example.springstudy.entity.HelloEntity;
    import org.junit.jupiter.api.Test;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    @SpringBootTest
    public class HelloControllerTest {
        @Autowired
        HelloEntity helloEntity;
        @Test
        public void contextLoads() {
            System.out.println(helloEntity);
        }
    }
    

    结果如下:

    我在启动测试方法contextLoads时,提示: Failed to resolve org.junit.vintage:junit-vintage-engine:5.7.1
    原因是IntelliJ IDEA版本和junit版本不适配(最新idea默认用junit5)
    在项目的pom.xml文件中添加如下依赖:

    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <scope>test</scope>
    </dependency>
    

    如果pom中存在下面的引用,把其中这段依赖中注释的部分删除掉

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <!--需要删除
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
        -->
    </dependency>
    

    配置文件占位符
    配置文件还可以编写占位符生成随机数

    person:
        name: qinjiang${random.uuid} # 随机uuid
        age: ${random.int}  # 随机int
        happy: false
        birth: 2000/01/01
        maps: {k1: v1,k2: v2}
        lists:
          - code
          - girl
          - music
        dog:
          name: ${person.hello:other}_旺财
          age: 1
    
    所有博客均为自己学习的笔记。如有错误敬请理解。
  • 相关阅读:
    C#WinForm应用程序中嵌入ECharts图表
    C#自定义按钮、自定义WinForm无边框窗体、自定义MessageBox窗体
    C#自定义无边框MessageBox窗体
    C#自定义Winform无边框窗体
    C#自定义Button按钮控件
    C# 对象与JSON字符串互相转换的三种方式
    Spring.NET依赖注入框架学习--实例化容器常用方法
    Spring.NET依赖注入框架学习--简单对象注入
    Spring.NET依赖注入框架学习--简介
    Spring.NET依赖注入框架学习--入门
  • 原文地址:https://www.cnblogs.com/tangtang-benben/p/14543153.html
Copyright © 2011-2022 走看看