欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot中YAML語法及幾個注意點說明

 更新時間:2022年02月16日 11:53:53   作者:luopeng207663436  
這篇文章主要介紹了SpringBoot中YAML語法及幾個注意點說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

YAML語法及幾個注意點

yaml后綴名可以是.yml或者.yaml

對于語法注意的一點是固定的縮進來控制它的層級關(guān)系,它的key: value形式必須要要在中間有空格

實體類(setter,getter,toString省略)如下

@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    private String lastName;
    private Integer age;
    private List<String> hobbies;
    private Map<String,Object> map;
    private Dog dog;
}

在使用了@ConfigurationProperties注解過后idea會給你發(fā)出警告,可以不管,但是這樣你在yml中配置時就沒有提示功能,所以點進警告,這時你會發(fā)現(xiàn)可能出現(xiàn)網(wǎng)頁找不到的情況,這時候你只需要將網(wǎng)址欄的版本降低即可,如下

將框中的內(nèi)容放進pom,然后重新運行項目,在yaml中就會對你自己寫的標注了@ConfigurationProperties的類有了代碼提示功能

public class Dog {
    private String name;
    private Integer age;
}

application.yml配置文件進行值的注入

person:
  last-name: 張三
  age: 25
  hobbies:
    - 籃球
    - 跑步
    - 吉他
  map: {k1: 你好,k2: 世界}
  dog:
    name: 狗東西
    age: 10

列表可以用上面的形式也可以用下面的形式,看清楚光標處有空格,對象類型就可以用{},如下面的Map

yaml的松散綁定

Java中l(wèi)astName的駝峰命名法,yaml中可以用其他的形式來表示。如

last_name
last-name
lastName
LASTNAME

首次玩這個如果想在測試類里面測試,有可能你會出現(xiàn)運行不了一直卡在Maven。。。的框里面,解決方案:我的錯誤收集筆記

YAML語法簡易入門

可以查看官方或者其他的博客資料,會有一大堆的內(nèi)容

YAML語言的設(shè)計參考了JSON,XML和SDL等語言。YAML 強調(diào)以數(shù)據(jù)為中心,簡潔易讀,編寫簡單。

有意思的命名:

AML全稱是”YAML Ain’t a Markup Language”(YAML不是一種置標語言)的遞歸縮寫。 在開發(fā)的這種語言時,YAML 的意思其實是:”Yet Another Markup Language”(仍是一種置標語言)。

語法特點

  • 大小寫敏感
  • 通過縮進表示層級關(guān)系
  • 禁止使用tab縮進,只能使用空格鍵 (個人感覺這條最重要)
  • 縮進的空格數(shù)目不重要,只要相同層級左對齊即可
  • 使用#表示注釋

支持的數(shù)據(jù)結(jié)構(gòu)

  • 對象:鍵值對的集合,又稱為映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 數(shù)組:一組按次序排列的值,又稱為序列(sequence) / 列表(list)
  • 純量(scalars):單個的、不可再分的值

雙引號和單引號的區(qū)分

雙引號"":不會轉(zhuǎn)義字符串里面的特殊字符,特殊字符作為本身想表示的意思。

yamlname: "123\n123"

輸出: 123 換行 123

如果不加引號將會轉(zhuǎn)義特殊字符,當成字符串處理

值的寫法

1.字符串

使用”或”“或不使用引號

yamlvalue0: 'hello World!'
value1: "hello World!"
value2: hello World!

2.布爾值

true或false表示。

3.數(shù)字

yaml12 #整數(shù)
014 # 八進制整數(shù)
0xC #十六進制整數(shù)
13.4 #浮點數(shù)
1.2e+34 #指數(shù)
.inf空值 #無窮大

4.空值

null或~表示

5.日期

使用 iso-8601 標準表示日期

yamldate: 2018-01-01t16:59:43.10-05:00

在springboot中yaml文件的時間格式 date: yyyy/MM/dd HH:mm:ss

6.強制類型轉(zhuǎn)換(了解)

YAML 允許使用個感嘆號!,強制轉(zhuǎn)換數(shù)據(jù)類型,單嘆號通常是自定義類型,雙嘆號是內(nèi)置類型。

yamlmoney: !!str
123
date: !Boolean
true

內(nèi)置類型列表

yaml!!int # 整數(shù)類型?
!!float # 浮點類型?
!!bool # 布爾類型?
!!str # 字符串類型?
!!binary # 也是字符串類型?
!!timestamp # 日期時間類型?
!!null # 空值?
!!set # 集合?
!!omap,!!pairs # 鍵值列表或?qū)ο罅斜?
!!seq # 序列,也是列表 !!map # 鍵值表

7.對象(重點)

Map(屬性和值)(鍵值對)的形式: key:(空格)v :表示一堆鍵值對,空格不可省略。

yamlcar:
? ? color: red
? ? brand: BMW

一行寫法

yamlcar:{color: red,brand: BMW}

相當于JSON格式:

json{"color":"red","brand":"BMW"}

8.數(shù)組

一組連詞線開頭的行,構(gòu)成一個數(shù)組。

yamlbrand:
? ?- audi
? ?- bmw
? ?- ferrari

一行寫法

yamlbrand: [audi,bmw,ferrari]

相當于JSON

json["auri","bmw","ferrari"]

9.文本塊

|:使用|標注的文本內(nèi)容縮進表示的塊,可以保留塊中已有的回車換行

yamlvalue: |
? ?hello
? ?world!

輸出結(jié)果:hello 換行 world!

+表示保留文字塊末尾的換行,-表示刪除字符串末尾的換行。

yamlvalue: |
hello
value: |-
hello
value: |+
hello

輸出:hello\n hello hello\n\n(有多少個回車就有多少個\n)

注意 “|” 與 文本之間須另起一行

:使用 > 標注的文本內(nèi)容縮進表示的塊,將塊中回車替換為空格,最終連接成一行

yamlvalue: > hello
world!

輸出:hello 空格 world!

注意 “>” 與 文本之間的空格

10.錨點與引用

使用 & 定義數(shù)據(jù)錨點(即要復制的數(shù)據(jù)),使用 * 引用錨點數(shù)據(jù)(即數(shù)據(jù)的復制目的地)

yamlname: &a yaml
book: *a
books:?
? ?- java
? ?- *a
? ?- python

輸出book: yaml

輸出books:[java,yaml,python]

注意*引用部分不能追加內(nèi)容 

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于java變量和作用域以及成員變量的默認初始化(詳解)

    基于java變量和作用域以及成員變量的默認初始化(詳解)

    下面小編就為大家介紹一下java變量和作用域以及成員變量的默認初始化,具有很好的參考價值,希望對大家有所幫助
    2017-11-11
  • 一篇文章帶你深入了解Java異常

    一篇文章帶你深入了解Java異常

    本篇文章主要介紹了java異常處理機制及應(yīng)用,異常處理機制是Java語言的一大特色。從異常處理的機制、異常處理的方法、異常處理的原則等方面介紹Java語言的異常處理技術(shù),有興趣的可以了解一下
    2021-08-08
  • SpringBoot?web靜態(tài)資源映射實現(xiàn)步驟詳解

    SpringBoot?web靜態(tài)資源映射實現(xiàn)步驟詳解

    在springBoot中的靜態(tài)資源的映射是通過SpringMVC中的resourceHttpRequestHandler來進行實現(xiàn)的。在該請求映射器中默認規(guī)定了,SpringBoot會將classPath或者ServletContext下的/static?(/public、/resources?或?/META-INF/resources)目錄中,存放靜態(tài)資源
    2022-09-09
  • Java中的原生post請求方式

    Java中的原生post請求方式

    這篇文章主要介紹了Java中的原生post請求方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 控制臺顯示java冒泡排序流程示例

    控制臺顯示java冒泡排序流程示例

    這篇文章主要介紹了控制臺顯示java冒泡排序流程示例,需要的朋友可以參考下
    2014-03-03
  • SpringBoot詳細講解通過自定義classloader加密保護class文件

    SpringBoot詳細講解通過自定義classloader加密保護class文件

    這篇文章主要介紹了SpringBoot通過自定義classloader加密class文件,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • Java NumberFormat格式化float類型的bug

    Java NumberFormat格式化float類型的bug

    今天小編就為大家分享一篇關(guān)于Java NumberFormat格式化float類型的bug,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Java設(shè)計模式之創(chuàng)建者模式詳解

    Java設(shè)計模式之創(chuàng)建者模式詳解

    這篇文章主要介紹了Java設(shè)計模式之創(chuàng)建者模式詳解,創(chuàng)建者模式,顧名思義,就是提供友好的創(chuàng)建對象的方式?,對象都是?new?出來的,但是在一些情況下,這種方式不是很友好,首先,它不夠直觀,需要的朋友可以參考下
    2023-08-08
  • 如何優(yōu)雅的替換掉Java代碼中的if else

    如何優(yōu)雅的替換掉Java代碼中的if else

    這篇文章主要介紹了如何優(yōu)雅的替換掉Java代碼中的if else,幫助大家優(yōu)化自己的Java代碼,提高可讀性與簡潔性,感興趣的朋友可以了解下
    2020-09-09
  • 并發(fā)編程ConcurrentLinkedQueue示例詳解

    并發(fā)編程ConcurrentLinkedQueue示例詳解

    這篇文章主要為大家介紹了并發(fā)編程ConcurrentLinkedQueue使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12

最新評論