標籤:port 中心 lang 索引值對 aml class 指令碼 固定 code
一、設定檔
SpringBoot使用一個全域的設定檔,設定檔名是固定的
- application.properties
- application.yml
設定檔的作用:修改SpringBoot自動設定的預設值;SpringBoot在底層都給我們自動設定好;
YAML(YAML Ain’t Markup Language)
YAML是“YAML不是一種標記語言”的外語縮寫 [1] (見前方參考資料原文內容);但為了強調這種語言以資料做為中心,而不是以置標語言為重點,而用返璞詞重新命名。它是一種直觀的能夠被電腦識別的資料序列化格式,是一個可讀性高並且容易被人類閱讀,容易和指令碼語言互動,用來表達資料序列的程式設計語言。
標記語言:
以前的設定檔;大多都使用的是 xxxx.xml檔案;
YAML:以資料為中心,比json、xml等更適合做設定檔;
YAML:配置例子
server: port: 8080
如果是xml:
<server> <port>8080</port></server>
二、YAML文法介紹1、基本文法
k:(空格)v:表示一對索引值對(空格必須有)
以空格的縮排來控制層級關係;只要是靠左對齊的一列資料,都是同一個層級的
1 server:2 port: 80803 path: /hello
屬性和值也是大小寫敏感;
2、值的寫法
字面量:普通的值(數字,字串,布爾)
k: v:字面直接來寫;
字串預設不用加上單引號或者雙引號;
1)“”:雙引號:不會逸出字元串裡面的特殊字元;特殊字元會作為本身想表示的意思
2)”:單引號:會轉義特殊字元,特殊字元最終只是一個普通的字串資料
-
name: ‘sihai\n lisi‘
輸出;sihai\n lisi
對象、Map(屬性和值)(索引值對)
k: v:在下一行來寫對象的屬性和值的關係;注意縮排 ,對象還是k: v的方式
數組(List、Set)
用- 值表示數組中的一個元素
pets: - cat - dog - pig
行內寫法:
pets: [cat,dog,pig]
三、設定檔值注入
設定檔
在javabean中的使用:
/*** 將設定檔中配置的每一個屬性的值,映射到這個組件中* * @ConfigurationProperties:告訴SpringBoot將本類中的所有屬性和設定檔中相關的配置進行綁定;* * prefix = "person":設定檔中哪個下面的所有屬性進行一一映射** 只有這個組件是容器中的組件,才能容器提供的@ConfigurationProperties功能;**/@Component@ConfigurationProperties(prefix = "user")public class User{ private String name; private int age; private List<Object> lists; private Pig pig;}
另外,我們可以匯入設定檔處理器,以後編寫配置就有提示了。
<!-- 匯入設定檔處理器,設定檔進行綁定就會有提示 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐configuration‐processor</artifactId> <optional>true</optional></dependency>
1、properties設定檔在idea中預設utf-8亂碼解決
2、@Value擷取值和@ConfigurationProperties擷取值比較
| @ConfigurationProperties |
@Value |
| 功能 |
批量注入設定檔中的屬性 |
| 鬆散綁定(鬆散文法) |
支援 |
| SpEL |
不支援 |
| JSR303資料校正 |
支援 |
| 複雜類型封裝 |
支援 不支援 |
設定檔詳細講解