最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot YAML語法基礎(chǔ)詳細整理

 更新時間:2022年10月26日 17:11:09   作者:沫洺  
YAML 是 “YAML Ain’t Markup Language”(YAML 不是一種標記語言)的遞歸縮寫。在開發(fā)的這種語言時,YAML 的意思其實是:“Yet Another Markup Language”(仍是一種標記語言),本文給大家介紹的非常詳細,需要的朋友可以參考下

YAML

Spring Boot 提供了大量的自動配置,極大地簡化了spring 應(yīng)用的開發(fā)過程,當(dāng)用戶創(chuàng)建了一個 Spring Boot 項目后,即使不進行任何配置,該項目也能順利的運行起來。當(dāng)然,用戶也可以根據(jù)自身的需要使用配置文件修改 Spring Boot 的默認設(shè)置。

SpringBoot 默認使用以下 2 種全局的配置文件,其文件名是固定的。

  • application.properties
  • application.yml/yaml

其中,application.yml 是一種使用 YAML 語言編寫的文件,它與 application.properties一樣,可以在 Spring Boot 啟動時被自動讀取,修改 Spring Boot 自動配置的默認值。

YAML 簡介

YAML 全稱 YAML Ain't Markup Language,它是一種以數(shù)據(jù)為中心的標記語言,比 XML 和 JSON 更適合作為配置文件。

想要使用 YAML 作為屬性配置文件(以 .yml 或 .yaml 結(jié)尾),需要將 SnakeYAML 庫添加到 classpath 下,Spring Boot 中的 spring-boot-starter-web 或 spring-boot-starter 都對 SnakeYAML 庫做了集成, 只要項目中引用了這兩個 Starter 中的任何一個,Spring Boot 會自動添加 SnakeYAML 庫到 classpath 下。

YAML 語法

YAML 的語法如下:

  • 使用縮進表示層級關(guān)系。
  • 縮進時不允許使用 Tab 鍵,只允許使用空格。(可設(shè)置Tab替換四個空格)
  • 縮進的空格數(shù)不重要,但同級元素必須左側(cè)對齊。
  • 大小寫敏感。
  • #表示注釋。

YAML 常用寫法

YAML 支持以下幾種數(shù)據(jù)結(jié)構(gòu):

  • 普通的值(數(shù)字、字符串、布爾、日期)
  • 對象 屬性值的集合
  • 數(shù)組 一組按次序排列的值
  • 集合 List、Set 與數(shù)組一樣,Map與對象一樣鍵值對的集合

普通值(字面量)

  • 字面量是指單個的,不可拆分的值,例如:數(shù)字、字符串、布爾值、以及日期等。
  • 在 YAML 中,使用“key:[空格]value”的形式表示一對鍵值對(空格不能省略)
  • 字面量直接寫在鍵值對的“value”中即可,且默認情況下字符串是不需要使用單引號或雙引號的

username: root
password: 123456

若字符串使用單引號,則不會轉(zhuǎn)義特殊字符,特殊字符會輸出為其本身想表達的含義

username1: 'zhangsan \n lisi'

輸出:zhangsan \n lisi

若字符串使用雙引號,則會轉(zhuǎn)義特殊字符,\n代表換行

username2: "zhangsan \n lisi"

輸出:'zhangsan lisi'

對象(屬性和值)、Map(鍵值對)

它們都是一對鍵值對,YAML 為對象提供了 2 種寫法

普通寫法 ,使用縮進表示對象與屬性的層級關(guān)系。

map1:
    name: 張三
    age: 23

行內(nèi)寫法

map2: {name: 李四,age: 24}

@ConfigurationProperties獲取鍵值對數(shù)據(jù)

@Value獲取鍵值對數(shù)據(jù)

@Value獲取map數(shù)據(jù)

map解析中,字符串一定要用"“把map所對應(yīng)的value包起來,要不然解析會失敗,導(dǎo)致不能轉(zhuǎn)成 Map<StrObject>

test:
  map: "{name: '李四',age: 24}"

@Component
@Data
public class Test {
    @Value("#{${test.map}}")
    private Map<String,Object> map;
}

這里說明一下,獲取的map值是Test(map={name=李四, age=24})這樣的,數(shù)據(jù)是在{}里的

YAML語法中如果一個值以 “{” 開頭, YAML 將認為它是一個字典, 所以我們必須如下方式引用它

map: "{name: '李四',age: 24}"

數(shù)組、list、set

YAML 使用“-”表示數(shù)組、list、set 中的元素

普通寫法

  array1:
    - 張三
    - 李四
  list1:
    - 23
    - 24

行內(nèi)寫法

array2: [王五,毛六]
list2: [25,26]

@ConfigurationProperties獲取數(shù)組與集合數(shù)據(jù)

@Value根據(jù)索引獲取數(shù)組與集合單個元素數(shù)據(jù)

想從yml配置文件中讀取數(shù)組,但是按照yml配置數(shù)組的形式有點麻煩,可以使用字符串去模擬數(shù)組

test:
  list: 張三,李四,王五

spring默認時按照逗號進行分割的,所以代碼中可以寫成

@Component
@Data
public class Test {
    @Value("${test.list}")
    private List<String> list;
}

另外,@Value注解是支持SpEL表達式的,所以還可以寫成

@Component
@Data
public class Test {
    @Value("#{'${test.list}'.split(',')}")
    private List<String> list;
}

復(fù)合結(jié)構(gòu)

以上幾種數(shù)據(jù)結(jié)構(gòu)可以任意組合使用,以實現(xiàn)不同的用戶需求

比如List中放Map

test:
  listInMap:
    - name: 張三
      age: 23
    - name: 李四
      age: 24
    - {name: 王五,age: 25}

YAML 組織結(jié)構(gòu)

一個 YAML 文件可以由一個或多個文檔組成,文檔之間使用“---”作為分隔符,且個文檔相互獨立,互不干擾。如果 YAML 文件只包含一個文檔,則“---”分隔符可以省略。

#默認配置
server:
  port: 8080
#切換配置
spring:
  profiles:
    active: test
---
#開發(fā)環(huán)境
server:
  port: 8081
spring:
  config:
    activate:
      on-profile: dev
---
#測試環(huán)境
server:
  port: 8082
spring:
  config:
    activate:
      on-profile: test
---
#生產(chǎn)環(huán)境
server:
  port: 8083
spring:
  config:
    activate:
      on-profile: prod

到此這篇關(guān)于SpringBoot YAML語法基礎(chǔ)詳細整理的文章就介紹到這了,更多相關(guān)SpringBoot YAML內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java的http請求工具對比分析

    java的http請求工具對比分析

    本文對比了Java中五種流行的HTTP客戶端庫:HttpURLConnection、ApacheHttpClient、OkHttp、Feign和SpringRestTemplate,涵蓋了它們的特性、優(yōu)勢、劣勢以及適用場景,感興趣的朋友一起看看吧
    2025-03-03
  • 教你代碼中獲取當(dāng)前?JAR?包的存放位置

    教你代碼中獲取當(dāng)前?JAR?包的存放位置

    這篇文章主要介紹了如何獲取當(dāng)前JAR包的存放位置,要獲取當(dāng)前運行的 JAR 包所存放的位置,可以使用 ProtectionDomain 和 CodeSource 類,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • java并發(fā)編程實例分析

    java并發(fā)編程實例分析

    在本文里我們給大家分享了關(guān)于java并發(fā)編程實例分析以及相關(guān)知識點,需要的朋友們學(xué)習(xí)下。
    2019-03-03
  • 使用Java對數(shù)據(jù)庫進行基本的查詢和更新操作

    使用Java對數(shù)據(jù)庫進行基本的查詢和更新操作

    這篇文章主要介紹了使用Java對數(shù)據(jù)庫進行基本的查詢和更新操作,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10
  • Mybatis逆向工程運行代碼實例

    Mybatis逆向工程運行代碼實例

    這篇文章主要介紹了Mybatis逆向工程運行代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Java輸入輸出流的使用詳細介紹

    Java輸入輸出流的使用詳細介紹

    本篇文章介紹了,在Java中輸入輸出流的使用詳細分析。需要的朋友參考下
    2013-04-04
  • spring boot task實現(xiàn)動態(tài)創(chuàng)建定時任務(wù)的方法

    spring boot task實現(xiàn)動態(tài)創(chuàng)建定時任務(wù)的方法

    這篇文章主要介紹了spring boot task實現(xiàn)動態(tài)創(chuàng)建定時任務(wù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • IDEA中l(wèi)og4j 無法輸出到本地 properties配置無效問題

    IDEA中l(wèi)og4j 無法輸出到本地 properties配置無效問題

    這篇文章主要介紹了IDEA中l(wèi)og4j 無法輸出到本地 properties配置無效問題,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • Spring Security登陸流程講解

    Spring Security登陸流程講解

    本文主要介紹了Spring Security登陸流程講解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • springcloud如何配置文件加載順序

    springcloud如何配置文件加載順序

    這篇文章主要介紹了springcloud如何配置文件加載順序問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評論

安塞县| 靖安县| 绥芬河市| 龙海市| 乌鲁木齐市| 柳河县| 双江| 武威市| 高雄市| 康马县| 雅江县| 都江堰市| 萨嘎县| 云浮市| 浙江省| 临澧县| 太和县| 马边| 西峡县| 阿拉善右旗| 健康| 玉树县| 饶平县| 鸡东县| 墨脱县| 临汾市| 南溪县| 台湾省| 新蔡县| 桓仁| 肥西县| 昌宁县| 乌兰浩特市| 合川市| 波密县| 车险| 晋江市| 大姚县| 玛纳斯县| 广水市| 曲靖市|