溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在springboot中讀取yml配置

發(fā)布時(shí)間:2021-05-23 09:58:54 來源:億速云 閱讀:553 作者:Leah 欄目:編程語言

怎么在springboot中讀取yml配置?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

yml 文件規(guī)則

  1. yml文件的好處,天然的樹狀結(jié)構(gòu),一目了然,實(shí)質(zhì)上跟properties是差不多的。

  2. 不支持tab縮進(jìn)

  3. 可以使用 "-小寫字母" 或 "_小寫字母"來 代替 "大寫字母",如 userName 與 user-name ,user_name 含義是一樣的

key: value 格式書寫

key 后面跟著冒號(hào),再后面跟著一個(gè)空格,然后是值

幾種數(shù)據(jù)格式的表示方式

1.普通的值(數(shù)字,字符串,布爾)
2.對(duì)象、Map (屬性和值) (鍵值對(duì))
3.數(shù)組 (List、Set)

普通的值(數(shù)字,字符串,布爾)

直接就是 key: value ,如:

age: 18
name: root

注:

字符串默認(rèn)不用加上單引號(hào)或者雙引號(hào);
"":雙引號(hào);不會(huì)轉(zhuǎn)義字符串里面的特殊字符;特殊字符會(huì)作為本身想表示的意思
name: "zhangsan \n lisi":輸出;zhangsan 換行 lisi
'':?jiǎn)我?hào);會(huì)轉(zhuǎn)義特殊字符,特殊字符最終只是一個(gè)普通的字符串?dāng)?shù)據(jù)
name: ‘zhangsan \n lisi':輸出;zhangsan \n lisi

對(duì)象、Map(屬性和值)(鍵值對(duì))

對(duì)象還是k: v的方式

k: v:在下一行來寫對(duì)象的屬性和值的關(guān)系;注意縮進(jìn)(不支持tab,使用空格),如:

person:
  age: 18
  name: root

數(shù)組(List、Set)

用- 值表示數(shù)組中的一個(gè)元素,如:

hands:
  - left
  - right

第一種讀取方式@value

如果我們只需要配置文件中的一兩個(gè)值,@Value 是最簡(jiǎn)單方便的方式.

server:
 port: 9001

我們?cè)诖a中可以這樣取值

@Value("${server.port}")
public String port;

注:此處的prot 所在的類需要是一個(gè)組件,如果是實(shí)體類需要加上@Component

第二種讀取方式@ConfigurationProperties

如果需要一個(gè)JavaBean 來專門映射配置的話,我們一般會(huì)使用@ConfigurationProperties來讀取.

student:
  age: 18
  name: root

javabean:

@Component
@ConfigurationProperties(prefix = "student")
public class Student {
 
  private String name;
 
  private Integer age;
 
  public String getName() {
    return name;
  }
 
  public void setName(String name) {
    this.name = name;
  }
 
  public Integer getAge() {
    return age;
  }
 
  public void setAge(Integer age) {
    this.age = age;
  }
 
  @Override
  public String toString() {
    return "Student{" +
        "name='" + name + '\'' +
        ", age=" + age +
        '}';
  }
}

使用@ConfigurationProperties,需要配置一個(gè)prefix (前綴) 參數(shù), 即寫上 key 就可以了.

第三種讀取方式@Environment

這種方法好像用的比較少,基本沒用過...

test:
  msg: root is a good student

springboot是什么

springboot一種全新的編程規(guī)范,其設(shè)計(jì)目的是用來簡(jiǎn)化新Spring應(yīng)用的初始搭建以及開發(fā)過程,SpringBoot也是一個(gè)服務(wù)于框架的框架,服務(wù)范圍是簡(jiǎn)化配置文件。

關(guān)于怎么在springboot中讀取yml配置問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI