YMLの概要


springbootに触れたときに特殊なプロファイル.ymlに遭遇しました.本稿ではymlについて簡単に紹介し、ymlを素早く入手します.
文書ディレクトリ
  • 一、YMLは何ですか
  • 二、YMLの利点
  • 三、YML文法
  • 1.約束
  • .キー値関係
  • 1)一般値(字面量)
  • 2)日付
  • 3)オブジェクト(属性と値)、Map(キー値ペア)
  • 4)配列、list、set
  • 5)配列オブジェクト、listオブジェクト、setオブジェクト
  • 6)Javaコード例
  • 3.文書ブロック
  • 一、YMLは何ですか
    YAML(YAML Aint Markup Language)はタグ言語であり、通常.ymlまたは.yamlを接尾辞とするファイルであり、直感的にコンピュータで認識できるデータシーケンス化フォーマットであり、人間に読みやすく、スクリプト言語と対話しやすく、YAMLライブラリをサポートする異なるプログラミング言語プログラムに導入され、プロファイルを書くための言語である.Java、C/C++、Ruby、Python、Perl、C#、PHPなどに使用できます.
    二、YMLの長所
  • YAMLは読みやすいです.
  • YAMLデータはプログラミング言語間で移植可能である.
  • YAMLは、スマート言語のネイティブデータ構造にマッチします.
  • YAMLは、汎用ツールをサポートするための一貫したモデルを有する.
  • YAMLは片道処理をサポートしています.
  • YAMLは表現力と拡張性を有する.
  • YAMLは実現と使用が容易である.

  • 三、YML文法
    1.約束
  • k:vはキー値対関係を表し、コロンの後ろにスペース
  • が必要である.
  • は、スペースのインデントを使用して階層関係を表し、スペースの数は重要ではありません.左揃えのデータ列であれば、同じ階層の
  • です.
  • 大文字小文字敏感
  • インデントではTabキーは使用できません.スペースのみ使用できます.
  • は、Javaでは、JavaのlastNameプロパティのようなアルパカの名前または使用-アルパカの代わりに、JavaではlastNameプロパティ、ymlではlastNameまたはlast-nameを使用して正しくマッピングできることを示しています.

  • 2.キー値関係
    (Java言語を例にとると、他の言語は類似している)キーと値については主に以下の内容を表すかどうかを見る.通常の値(数値、文字列、ブール)、日付、オブジェクト、配列、コレクションなど.
    1)普通値(字面量)
    k:v:字面量直接書く;
    文字列のデフォルトでは、単一引用符または二重あだ名を付ける必要はありません.
    """:二重引用符;文字列の中の特殊な文字はエスケープされません.特殊文字は自分が表現したい意味になります
    name:「zhangsan lisi」:出力;zhangsan改行lisi
    '’:一重引用符;特殊文字がエスケープされ、特殊文字は最終的には普通の文字列データにすぎません
    name1: zhangsan
    name2: 'zhangsan 
    lisi'
    name3: "zhangsan
    lisi"
    age: 18 flag: true

    2)日付
    date: 2019/01/01
    

    3)オブジェクト(属性と値)、Map(キー値ペア)
    オブジェクトのプロパティと値の関係を次の行に書きます.インデントに注意してください.
    people:
        name: zhangsan
        age: 20
    

    行内の書き方:
    people: {name:zhangsan,age: 20}
    

    4)配列、リスト、set
    配列内の要素を-値で表す
    pets:
        - dog
        - pig
        - cat
    

    行内の書き方
    pets: [dog,pig,cat]
    

    5)配列オブジェクト、listオブジェクト、setオブジェクト
    peoples:
        - name: zhangsan
          age: 22
        - name: lisi
          age: 20
        - {name: wangwu,age: 18}
    

    6)Javaコードの例
    Javaコード(get,setメソッドを省略)
    public class Person {
    
        private String lastName;
        private Integer age;
        private Boolean boss;
    
        private Date birth;
        private Map<String,Object> maps;
        private List<Dog> lists;
        private Dog dog;
        private String[] arr;public class Dog {
        private String name;
        private Integer age;
    }
    

    対応するyml
    person:
      boss: false
      maps:
        k1: v1
        k2: 14
      lists:
        - name: d1
          age: 2
        - name: d2
          age: 3
        - {name: d3,age: 4}
      birth: 2017/12/15
      dog:
        name: p_dog
        age: 15
      age: 13
      last-name:   
      arr: [s1,s2,s3]
    

    3.文書ブロック
    テスト環境、プリプロダクション環境では、プロダクション環境は異なる構成を使用できます.1つのファイルに書きたい場合は、ymlはサポートされており、各ブロックは----で区切られています.
    server:
      port: 8081
    spring:
      profiles:
        active: prod #        
    
    ---
    server:
      port: 8083
    spring:
      profiles: dev #        
    
    
    ---
    
    server:
      port: 8084
    spring:
      profiles: prod  #