關(guān)于在Java中如何使用yaml的實(shí)例
什么是yaml
YAML(Yet Another Markup Language)是一種輕量級的數(shù)據(jù)序列化格式。
它以易讀、易寫的文本格式表示數(shù)據(jù),支持列表、字典等各種數(shù)據(jù)結(jié)構(gòu),被廣泛應(yīng)用于配置文件、數(shù)據(jù)傳輸協(xié)議等領(lǐng)域。
YAML的特點(diǎn)是語言簡潔、可讀性強(qiáng)、可擴(kuò)展性好,常被用于人類可讀的配置文件。
而properties是Java中一種常用的配置文件格式,它以鍵值對的方式表示數(shù)據(jù),常用于存儲程序中的配置信息。
Properties文件可以直接由Java的API進(jìn)行讀取和寫入,也可以用其他語言實(shí)現(xiàn)的庫進(jìn)行處理。不同于YAML,properties只能表示鍵值對這一種數(shù)據(jù)結(jié)構(gòu)。
YAML和properties有以下幾個(gè)區(qū)別:
- 語法形式不同:YAML的語法采用縮進(jìn)方式,更加緊湊、易讀,而properties的語法則是通過鍵值對的形式來定義數(shù)據(jù),較為簡單明了。
- 數(shù)據(jù)類型支持不同:YAML支持多種數(shù)據(jù)類型,包括數(shù)組、字典、布爾型等,而properties只支持字符串類型,需要額外轉(zhuǎn)換。
- 擴(kuò)展性不同:由于YAML的可擴(kuò)展性與靈活性更高,它可以輕松地?cái)U(kuò)展支持新的數(shù)據(jù)類型或自定義標(biāo)簽,而properties則很難擴(kuò)展。
總之,YAML和properties是兩種不同的配置文件格式。YAML語法更加緊湊易讀,支持多種數(shù)據(jù)類型和擴(kuò)展性好;
而properties則簡單明了,只能表示鍵值對數(shù)據(jù)結(jié)構(gòu)。選擇哪種格式應(yīng)根據(jù)具體情況而定
一般來說,YAML適合于復(fù)雜的配置文件,而properties適合于簡單的配置場景。
實(shí)體類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í)體類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
測試
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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mybatis之調(diào)用帶輸出參數(shù)的存儲過程(Oracle)
這篇文章主要介紹了mybatis調(diào)用帶輸出參數(shù)的存儲過程(Oracle),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11java并發(fā)編程JUC CountDownLatch線程同步
這篇文章主要介紹CountDownLatch是什么、CountDownLatch 如何工作、CountDownLatch 的代碼例子來展開對java并發(fā)編程JUC CountDownLatch線程同步,需要的朋友可以參考下面文章內(nèi)容2021-09-09java isPalindrome方法在密碼驗(yàn)證中的應(yīng)用
這篇文章主要為大家介紹了java isPalindrome方法在密碼驗(yàn)證中的簡單應(yīng)用技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Java Calendar類常用示例_動力節(jié)點(diǎn)Java學(xué)院整理
從JDK1.1版本開始,在處理日期和時(shí)間時(shí),系統(tǒng)推薦使用Calendar類進(jìn)行實(shí)現(xiàn)。接下來通過實(shí)例代碼給大家詳細(xì)介紹Java Calendar類相關(guān)知識,需要的朋友參考下吧2017-04-04Java實(shí)現(xiàn)平鋪列表(List)互轉(zhuǎn)樹形(Tree)結(jié)構(gòu)
本文主要介紹了Java實(shí)現(xiàn)平鋪列表(List)互轉(zhuǎn)樹形(Tree)結(jié)構(gòu),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08idea創(chuàng)建JAVA Class時(shí)自動生成頭部文檔注釋的方法
這篇文章主要介紹了idea創(chuàng)建JAVA Class時(shí)自動生成頭部文檔注釋的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12SpringBoot使用WebSocket實(shí)現(xiàn)前后端交互的操作方法
springboot使用websocket有兩種方式,一種是實(shí)現(xiàn)簡單的websocket,另外一種是實(shí)現(xiàn)STOMP協(xié)議,本篇講述如何使用springboot實(shí)現(xiàn)簡單的websocket,需要的朋友可以參考下2022-04-04解決idea update project 更新選項(xiàng)消失的問題
這篇文章主要介紹了解決idea update project 更新選項(xiàng)消失的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01