設定檔詳細講解

來源:互聯網
上載者:User

標籤: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)“”:雙引號:不會逸出字元串裡面的特殊字元;特殊字元會作為本身想表示的意思

  • name: "sihai\n lisi"

     輸出: sihai換行 lisi”:單引號:會轉義特殊字元,特殊字元最終只是一個普通的字串資料

  2)”:單引號:會轉義特殊字元,特殊字元最終只是一個普通的字串資料

  •   
    name: ‘sihai\n lisi‘
    輸出;sihai\n lisi

  對象、Map(屬性和值)(索引值對)

  k: v:在下一行來寫對象的屬性和值的關係;注意縮排 ,對象還是k: v的方式

  • user:    name: sihai    age: 20

     行內寫法:

  • user: {name: sihai, age: 18}

     

  數組(List、Set)

    用- 值表示數組中的一個元素

  • pets: - cat - dog - pig

     行內寫法:

  • pets: [cat,dog,pig]

     

 

三、設定檔值注入

設定檔

  • user:    name: sihai    age: 20    lists:        - lisi        - zhangsan    pig:        name: 小豬        age: 10

     

在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資料校正 支援
複雜類型封裝 支援 不支援

設定檔詳細講解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.