zoukankan      html  css  js  c++  java
  • YAML语法

    一、基本语法

    k:(空格)v:表示一对键值对(空格必须有);
    以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的

    server:
      port: 8081
      path: /hello

    二、值的写法

    1、字面量:普通的值(数字,字符串,布尔)

    k: v:字面直接来写;
    字符串默认不用加上单引号或者双引号;
    "":双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思
      name: "zhangsan 
     lisi":输出;zhangsan 换行 lisi
    '':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据
      name: ‘zhangsan 
     lisi’:输出;zhangsan 
     lisi

    2、对象、Map(属性和值)(键值对)

    k: v:在下一行来写对象的属性和值的关系;注意缩进
    对象还是k: v的方式

    friends:
      lastName: zhangsan
      age: 20

    行内写法:

    friends: {lastName: zhangsan,age: 18}

    3、数组(List、Set)

    用- 值表示数组中的一个元素

    pets:
     ‐ cat
     ‐ dog
     ‐ pig

    行内写法

    pets: [cat,dog,pig]

    三、例子

    1、javaBean

    /**
    * 将配置文件中配置的每一个属性的值,映射到这个组件中
    * @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;
    * prefix = "person":配置文件中哪个下面的所有属性进行一一映射
    *
    * 只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties功能;
    *
    */
    @Component
    @ConfigurationProperties(prefix = "person")
      public class Person {
      private String lastName;
      private Integer age;
      private Boolean boss;
      private Date birth;
      private Map<String,Object> maps;
      private List<Object> lists;
      private Dog dog;

    2、application.yml

    person:
      lastName: zhangsan
      age: 18
      boss: false
      birth: 2017/12/12
      maps: {k1: v1,k2: v2}
      lists: [lisi,wangwu]
      dog:
        name: 小狗
        age: 2

    3、pom.xml

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

    4、测试代码

    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class SpringBootHelloworldApplicationTests {
    
        @Autowired
        private Person person;
    
        @Test
        public void contextLoads() {
            System.out.println(person);
        }
    
    }

    四、相同的配置写在 properties 文件中也可以 ( 操作和 yml 一样 )

    1、application.properties

    person.last-name=张三
    person.age=18
    person.birth=2017/12/15
    person.boss=false
    person.maps.k1=v1
    person.maps.k2=14
    person.lists=a,b,c
    person.dog.name=dog
    person.dog.age=15

    2、解决 properties 可能乱码问题

  • 相关阅读:
    Entity Framework+SQLite+DataBaseFirst
    接口的实现方式(显示和隐示)及协变和逆变
    C#线程
    UIScrollView放大缩小图片偏移的问题
    SQL Server 2008在添加用户时弹出错误提示:此版本的 Microsoft Windows 不支持 MUST_CHANGE 选项
    jmeter的正则表达式的使用
    Linux下安装jmeter
    系统测试方案
    [ASP.NET].NET逻辑分层架构总结
    [C#]C#时间日期操作
  • 原文地址:https://www.cnblogs.com/fangwu/p/8822948.html
Copyright © 2011-2022 走看看