關(guān)于在Java中如何使用yaml的實(shí)例
什么是yaml
YAML(Yet Another Markup Language)是一種輕量級(jí)的數(shù)據(jù)序列化格式。
它以易讀、易寫(xiě)的文本格式表示數(shù)據(jù),支持列表、字典等各種數(shù)據(jù)結(jié)構(gòu),被廣泛應(yīng)用于配置文件、數(shù)據(jù)傳輸協(xié)議等領(lǐng)域。
YAML的特點(diǎn)是語(yǔ)言簡(jiǎn)潔、可讀性強(qiáng)、可擴(kuò)展性好,常被用于人類(lèi)可讀的配置文件。
而properties是Java中一種常用的配置文件格式,它以鍵值對(duì)的方式表示數(shù)據(jù),常用于存儲(chǔ)程序中的配置信息。
Properties文件可以直接由Java的API進(jìn)行讀取和寫(xiě)入,也可以用其他語(yǔ)言實(shí)現(xiàn)的庫(kù)進(jìn)行處理。不同于YAML,properties只能表示鍵值對(duì)這一種數(shù)據(jù)結(jié)構(gòu)。
YAML和properties有以下幾個(gè)區(qū)別:
- 語(yǔ)法形式不同:YAML的語(yǔ)法采用縮進(jìn)方式,更加緊湊、易讀,而properties的語(yǔ)法則是通過(guò)鍵值對(duì)的形式來(lái)定義數(shù)據(jù),較為簡(jiǎn)單明了。
- 數(shù)據(jù)類(lèi)型支持不同:YAML支持多種數(shù)據(jù)類(lèi)型,包括數(shù)組、字典、布爾型等,而properties只支持字符串類(lèi)型,需要額外轉(zhuǎn)換。
- 擴(kuò)展性不同:由于YAML的可擴(kuò)展性與靈活性更高,它可以輕松地?cái)U(kuò)展支持新的數(shù)據(jù)類(lèi)型或自定義標(biāo)簽,而properties則很難擴(kuò)展。
總之,YAML和properties是兩種不同的配置文件格式。YAML語(yǔ)法更加緊湊易讀,支持多種數(shù)據(jù)類(lèi)型和擴(kuò)展性好;
而properties則簡(jiǎn)單明了,只能表示鍵值對(duì)數(shù)據(jù)結(jié)構(gòu)。選擇哪種格式應(yīng)根據(jù)具體情況而定
一般來(lái)說(shuō),YAML適合于復(fù)雜的配置文件,而properties適合于簡(jiǎn)單的配置場(chǎng)景。
實(shí)體類(lèi)Person
package com.qing.springboot.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; import java.util.Map; @Component @ConfigurationProperties(prefix = "person") @Data @AllArgsConstructor @NoArgsConstructor public class Person { private String name; private Integer age; private Boolean happy; private Date birth; private Map<String, Object> maps; private List<Object> lists; private Dog dog; }
實(shí)體類(lèi)Dog
package com.qing.springboot.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Data @AllArgsConstructor @NoArgsConstructor @Component public class Dog { @Value("旺財(cái)") private String name; @Value("3") private Integer age; }
application.yaml文件
person: name: qing age: 4 happy: false birth: 2020/11/11 maps: {k1: 1,k2: "hello"} lists: - code - music - girl dog: name: "旺財(cái)" age: 3
測(cè)試
package com.qing.springboot; import com.qing.springboot.pojo.Person; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest class ApplicationTests { @Autowired private Person person; @Test void contextLoads() { System.out.println(person); } }
結(jié)果
到此這篇關(guān)于關(guān)于在Java中如何使用yaml的實(shí)例的文章就介紹到這了,更多相關(guān)Java中使用yaml內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mybatis之調(diào)用帶輸出參數(shù)的存儲(chǔ)過(guò)程(Oracle)
這篇文章主要介紹了mybatis調(diào)用帶輸出參數(shù)的存儲(chǔ)過(guò)程(Oracle),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11java并發(fā)編程JUC CountDownLatch線(xiàn)程同步
這篇文章主要介紹CountDownLatch是什么、CountDownLatch 如何工作、CountDownLatch 的代碼例子來(lái)展開(kāi)對(duì)java并發(fā)編程JUC CountDownLatch線(xiàn)程同步,需要的朋友可以參考下面文章內(nèi)容2021-09-09java isPalindrome方法在密碼驗(yàn)證中的應(yīng)用
這篇文章主要為大家介紹了java isPalindrome方法在密碼驗(yàn)證中的簡(jiǎn)單應(yīng)用技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Java多個(gè)線(xiàn)程同時(shí)執(zhí)行的方法
這篇文章主要介紹了Java多線(xiàn)程處理文件詳解與代碼示例,通過(guò)本文的介紹和代碼示例,我們了解了如何使用Java多線(xiàn)程來(lái)處理文件,使用多線(xiàn)程技術(shù)可以顯著提高文件處理的效率,特別是對(duì)于大量文件的處理任務(wù),需要的朋友可以參考下2024-12-12Java Calendar類(lèi)常用示例_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
從JDK1.1版本開(kāi)始,在處理日期和時(shí)間時(shí),系統(tǒng)推薦使用Calendar類(lèi)進(jìn)行實(shí)現(xiàn)。接下來(lái)通過(guò)實(shí)例代碼給大家詳細(xì)介紹Java Calendar類(lèi)相關(guān)知識(shí),需要的朋友參考下吧2017-04-04Java實(shí)現(xiàn)平鋪列表(List)互轉(zhuǎn)樹(shù)形(Tree)結(jié)構(gòu)
本文主要介紹了Java實(shí)現(xiàn)平鋪列表(List)互轉(zhuǎn)樹(shù)形(Tree)結(jié)構(gòu),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08idea創(chuàng)建JAVA Class時(shí)自動(dòng)生成頭部文檔注釋的方法
這篇文章主要介紹了idea創(chuàng)建JAVA Class時(shí)自動(dòng)生成頭部文檔注釋的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12SpringBoot使用WebSocket實(shí)現(xiàn)前后端交互的操作方法
springboot使用websocket有兩種方式,一種是實(shí)現(xiàn)簡(jiǎn)單的websocket,另外一種是實(shí)現(xiàn)STOMP協(xié)議,本篇講述如何使用springboot實(shí)現(xiàn)簡(jiǎn)單的websocket,需要的朋友可以參考下2022-04-04解決idea update project 更新選項(xiàng)消失的問(wèn)題
這篇文章主要介紹了解決idea update project 更新選項(xiàng)消失的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01