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

