1. 程式人生 > 其它 >YAML的語法格式(Spring Boot初識 三)

YAML的語法格式(Spring Boot初識 三)

技術標籤:ssmspring bootspringyaml

目錄

一.使用Spring Initializer 快速建立Spring boot專案。

二.Spring Boot的配置檔案。

三.YAML的語法格式。

四.YAML支援的三種資料結構。

五.YAML配置檔案值的獲取。

六.配置檔案亂碼問題


上次我們知道@EnableAutoConfiguration註解和@ComponentScan註解的區別?

那麼這次我們繼續往下來學習。

一.使用Spring Initializer 快速建立Spring boot專案。

建立的過程就略過了,我們說下面幾點。

1.建立專案的時候,我們需要保持聯網狀態。

2.建立的專案會自動在pom檔案中引入相應的jar包。

3.resource資料夾目錄結構:

static:儲存所有的靜態檔案,例如:js,css,images;

templates:儲存所有的模板頁面(Spring Boot 的預設jar包使用的是嵌入式的tomcat,預設不支援jsp頁面)。可以使用模板引擎(freemarker,thymeleaf)。

application.properties:Spring Boot應用的配置檔案(可以用來更改一些Spring Boot的預設配置)。

二.Spring Boot的配置檔案。

1.Spring Boot使用一個全域性的配置檔案(有兩種寫法,配置檔名稱是固定的):

application.properties

application.yml

2.配置檔案的作用:

Spring Boot在底層都給我們配置好了一些預設值。我們可以通過全域性配置檔案來修改其預設值。

Yaml(Yet Another Markup Language :也是一種標記語言)是一個可讀性高,用來表達資料序列化的格式。是以資料為中心,比xml更適合做配置(省去了繁重的標籤配置)。

xml配置如下:

<server>
    <port>8081</port>
</server>

三.YAML的語法格式。

1.使用縮排來表示層級關係。

2.縮排時不允許使用tab鍵,只允許使用空格

3.縮排時空格數目不重要,只要相同層級的元素左側對其即可。

4.屬性和值是大小寫敏感的。但是-x 和 X是一樣的,例如:last-name和lastName是相同的,都可以注入到實體類中的lastName屬性中。

5.用K: V的形式表示一對鍵值對(注意,:和 V之間一定要有空格)。如下:

server:
    port: 8080

四.YAML支援的三種資料結構。

1.物件:鍵值對的集合(Map)。分為行內寫法和非行內寫法:

(1)非行內寫法:

server:
    port: 8080


user:
    name: joe
    age: 24

(2)行內寫法:

user: {name: joe,age: 24}

2.陣列:一組按次序排列的值(List,Set)。分為行內寫法和非行內寫法:

用- 值表示陣列中的一個元素(- 和 值之間也要使用空格)。

(1)非行內寫法:

pets:
 - cat
 - dog
 - pig

(2)行內寫法:

pets: [cat,dog,pig]

3.字面量:單一的,不可再分的值(數字,字串,Boolean)。

username: joe

直接用K: V 的形式來寫。字串預設不加單引號或者雙引號:

(1)雙引號“”:“會轉義”字串裡面的特殊字元。

name: “zhangsan \n lisi”:輸出;zhangsan 換行 lisi

(2)單引號‘’:“不會轉義”特殊字元。

name: “zhangsan \n lisi”:輸出;zhangsan \n lisi

總的來說,不管是哪種寫法,都是利用空格來表示層級關係,並且“-” 和 “:” 之後一定要有空格,然後才能寫value值。

五.YAML配置檔案值的獲取。

如果我們在yaml檔案中定義了一個物件user,那麼我們就可以建立一個實體類user,一一對應上yaml檔案中的user屬性。然後使用@ConfigurationProperties這個註解標註在user類上,

這樣執行程式後,配置檔案中的user屬性值會賦值給user實體類中的屬性。

@ConfigurationProperties註解的作用就是告訴Spring Boot將本類中的所有屬性和配置檔案中的相關配置(相關屬性)進行繫結。

注意:

@ConfigurationProperties 這個註解有一個引數是prefix(字首),它用來指定該實體類是用配置檔案中的哪個物件進行對映。本例子中就是@ConfigurationProperties(prefix = “user”)。

此外:

要想使用@ConfigurationProperties這個註解,我們首先要在pom檔案中引入如下依賴,這樣我們才能使用ConfigurationProperties這個註解:

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-configuration-processor</artifactId>
     <option>true</option>
</dependency>

@ConfigurationProperties註解要想能自動對映,還需要其標註的類是容器中的元件,所以該註解通常要個@Component註解一起使用。

六.配置檔案亂碼問題

亂碼是因為同一個字元的“輸入”和“輸出”的碼錶不一樣。

例如:張三 -----------------》0000 ----------------》李四;

輸入(碼錶) 輸出(碼錶)

所以,我們只需要配置下properties檔案的編碼和idea控制檯輸出編碼一致即可。

這篇文章收工。