日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Boot —— YAML配置文件

發布時間:2025/3/12 javascript 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot —— YAML配置文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言

首先,YAML并不是僅僅可以使用在Java項目中,它是一種類似于json結構的標記語言,可以為所有的編程語言服務。它強調更直觀的層級表示,比較適合描述配置文件中的層級關系。

Spring Boot可以識別后綴名為".properties"或“.yaml”或“.yml” 的全局配置文件。以yaml或yml為后綴的配置文件都是YAML文件。

默認的配置文件的優先級如下:

file:./config/? ? ? ?

file:./? ? ? ? ? ? ? 項目根路徑下

classpath:/config/

classpath:/? ? ? 項目resources文件夾下

一、與其他配置格式的比較

與其他配置文件的格式比較,yaml的表達方式既有直觀突出的層級結構,同時又不會冗余重復:

.properties配置方式:

?.xml配置方式:

.yml配置方式:

?不難看出,兼顧層級結構而又簡潔明快的配置方式當然YAML是最好的選擇。

二、YAML基本語法

2.1 表達式

YAML用一個鍵值對來表示每個屬性(大小寫敏感),類似于json但卻不需要大括號,用冒號分割Key和Value的同時需要在冒號后面加入一個強制的空格

key: value

舉例:

2.2 層級表示

YAML采用換行并縮進的方式來表達父節點與子節點、對象與屬性之間的關系,同級的節點或屬性要嚴格保證相同的縮進:

2.3 字面量的表示

字面量包括數字、字符串、布爾值等,YAML中可以直接書寫字面量,而且一般的字符串不需要加任何引號。而引號的使用一般與特殊字符有關:雙引號不會轉義特殊字符;單引號會轉義特殊字符。比如字符串中包含 \n ,雙引號識別為換行,單引號會識別為 \n 。

2.4 對象的表示

YAML為對象的表示提供了兩種表達方式:層級縮進、行內表達

層級縮進如2.2所示只需要縮進保持對齊,就可以完整的表達一個對象。另一種行內表達的方式如下:

和JSON結構體類似,不過需要注意強制空格,和不加引號。

2.5 數組或List

同樣有兩種寫法:層級縮進和行內表達。

層級縮進的方式,因為屬性的值是多個,所以與一般的屬性定義略有不同,每個元素換行縮進之后需要在前面加一個短橫線 - ,然后強制空格

行內表達的方式,注意是中括號 [ ] :

2.6 Map

使用@Value可以實現注入:

@Value("#{${cache.studentAge:null}}") private Map<String, Integer> studentAge; cache:studentAge: "{morty : 28}"

?注意,map需要用引號將整個結構括起來。我們可以在@Value 中加入默認值 null,這樣可以避免在沒有配置屬性的時候報錯,但是一定要記得在程序中判空。

三、獲取配置文件(不限于YAML)中的值

Spring Boot默認使用SnakeYAML解析YAML文件。

使用配置文件的時候,除了修改Spring Boot提供的默認配置以外(如修改端口),我們還可以在配置文件中定義完全屬于自己的對象,比如一個全局唯一的管理員對象

Administrator: name: Mortyage: nullgender: MALErole: adminpermission: all

定義JavaBean,并使用注解@ConfigurationProperties。

測試:

@RunWith(SpringRunner.class) @SpringBootTest public class AdminTest {@Autowiredprivate Admin admin;@Testpublic void test() {System.out.println("管理員:" + admin);} }

執行結果:

另外,除了@ConfigurationProperties注解之外,單獨取得某個值還可以使用@Value,它們之間的區別:

關于@ConfigurationProperties和@Value 兩個注解之間詳細的區別,參考《Spring Boot————@ConfigurationProperties與@Value》。

當然,業務開發中采用在配置文件中定義實體bean的方式是比較愚蠢的。所以,在大多數應用開發場景中,@Value要比@ConfigurationProperties注解用途更廣。然而在Spring Boot的自動配置原理中(參見《Spring Boot面試殺手锏————自動配置原理》),Spring Boot就是使用@ConfigurationProperties完成從配置文件到XxxxProperties對象的映射綁定的,因此,理解這種批量導入屬性的方式是有必要的。

綜上,就是關于YAML配置文件語法的簡單講解和Spring Boot從配置文件中的取值方式,歡迎各位看官文末留言。

總結

以上是生活随笔為你收集整理的Spring Boot —— YAML配置文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。