日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一、YAML 簡介

1、什么是 YAML ?

  • YAML(YAML Ain't Markup Language),一種數據序列化格式。
  • 這種格式的配置文件近些年逐漸進入市場,并開始占據主導地位。

2、優點

  • 較 xml 類型和 properties 類型相比,更容易閱讀,結構也更加的清晰。
  • 容易與腳本語言交互。
  • 以數據為核心,重數據輕格式,輕格式并不是說可以不遵守格式,只是格式更加隨性一些。

3、擴展名

  • 擴展名有兩種,無論是哪個擴展名,都是 YAML 格式的配置文件,擁有 YAML 的屬性。.yml ,這種擴展名更加主流一些.yaml

4、語法規則

  • 對大小寫非常敏感,如:定義 age 和 AGE 都會認為是兩個屬性。
  • 屬性層級關系使用多行描述,每行結尾使用冒號結束。
  • 使用縮進表示層級關系,同層級左側對齊,只允許使用空格。
  • 空格個數并不重要,只要保證同層級的左側對齊即可。
  • 屬性值前面添加空格。
  • 號表示注釋。

5、格式

server:  port: 80
  • 切記:屬性值前面必須有一個空格。
  • port 是 server 下的一個屬性,根據屬性層級之間使用多行描述,以及使用縮進表示的規則,port 的書寫位置如上所示,但一般情況下,這種格式我們無需過多糾結,我們回車換行后自動提供的格式一般都是正確的。

6、數組數據

name: 準JAVA全棧開發工程師server:  port: 80# 數組格式likes:  - game  - movie  - music
  • 數組數據的屬性值換行書寫,以 “-” 減號開頭,注意屬性值前空格,如上述 likes 所示。

二、三種配置文件

以配置端口號為例,介紹三種配置文件及其格式。

1、properties 類型

  • 在未接觸到 yaml 之前,我們的配置文件大多數都是以 properties 結尾的文件。
server.port=80
  • 格式為:屬性名=屬性值 。
  • 這種方式還是非常常見的,我們之前在配置連接數據庫相關信息的 jdbc.properties 文件也是使用的改變方式。

2、yml 類型

server:  port: 81
  • 將端口號設置為 81 。

3、yaml 類型

  • yml 和 yaml 只是擴展名不同而已,其實是一種類型的配置文件。
server:  port: 82

4、優先級

  • 當項目中同時存在上述三個配置文件時,用采用那個配置文件呢?我們可以通過觀察端口號來獲得優先級順序。
  • 端口號為 80 ,說明有人優先采用了 properties 類型的配置文件,它的優先級最高。
  • 將 properties 配置文件中的配置內容刪除,觀察 .yaml 和 .yml 那種文件優先級更高。
  • 端口號又變為了 81 ,說明 .yml 文件優先級更高一些,雖然 .yaml 只是不同的擴展名罷了。
  • 總結:優先級由高到低 properties > yml > yaml

三、YAML 代碼提示功能

  • 有很多小伙伴反應,說在寫什么 YAML 文件時,代碼不提示。
  • 沒有代碼提示功能,對我們的開發還是造成了一定的影響的,下面就帶著大家來解決這個問題。
  • 首先進入到模塊管理。
  • 將 YAML 類型的兩個配置文件添加。
關于spring boot的YAML 配置文件

 

  • 選中創建的兩個配置文件,完成后點擊 “OK” 即可。
關于spring boot的YAML 配置文件

 

  • 此時的配置文件已經變成了三個。
關于spring boot的YAML 配置文件

 

  • 重新回到配置文件看是否實現了代碼提示的功能。
關于spring boot的YAML 配置文件

 

  • 已經實現了代碼提示功能,雖然是 YAML 文件,但是代碼提示的還是按照 properties 類型進行的,并不影響,找到需要的屬性直接回車后還是會呈現出 YAML 格式。

四、讀取 YAML 配置文件中的數據

1、數據準備

sourceName: SpringBoot server:  port: 80 user:  name: 準Java全棧開發工程師  age: 22  likes:    - music    - game    - movie

2、方式一:@Value

@SpringBootTestclass DemoApplicationTests {     @Value("${sourceName}")    private String sourceName;    @Value("${server.port}")    private Integer port;    @Value("${user.likes[0]}")    private String likes;     @Test    void contextLoads() {        System.out.println(sourceName);        System.out.println(port);        System.out.println(likes);    }}
  • 將要讀取的數據定義為屬性,使用 @Value 注解讀取配置文件中的數據并注入給屬性,之后在方法體中可以直接使用。

3、方式二:Environment

@SpringBootTestclass DemoApplicationTests {    @Autowired    private Environment environment;     @Test    void contextLoads() {        System.out.println(environment.getProperty("sourceName"));        System.out.println(environment.getProperty("server.port"));        System.out.println(environment.getProperty("user.likes[0]"));    }}
  • SpringBoot 提供有 Environment 對象,可以將配置文件中的所有數據都封裝到該對象中,使用 getProperty 方法,將想要讀取的數據名作為參數傳入即可。

4、方式三:自定義對象

user:  name: 準Java全棧開發工程師  age: 22  likes:    - music    - game    - movie
  • 對于配置類中的 user 數據,其下還有很多子層,如果我們想一下子將 user 的所有數據都取出,應該怎么做呢?將其封裝為一個對象。
@Component  // 將bean的創建工作交由Spring管理// @ConfigurationProperties 注解表示加載配置文件// 使用prefix前綴表示只加載指定前綴的數據@ConfigurationProperties(prefix = "user")public class User {    private String name;    private Integer age;    private Object[] likes;	// get、set、toString和構造器方法省略}
  • 和我們定義實體類沒有太大的區別,只是這次不再是和數據庫表中的字段對應,而是和配置文件中定義的數據對應。
  • 除此之外,還需要使用 ConfigurationProperties 注解加載配置文件,使用 prefix 指定加載數據的前綴。
@SpringBootTestclass DemoApplicationTests {    @Autowired    private User user;     @Test    void contextLoads() {        System.out.println(user);    }}
  • 使用該方式在定義實體類時,會報紅提示
關于spring boot的YAML 配置文件

 

  • 我們只需要在 pom.xml 文件中導入相應的依賴即可。
<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-configuration-processor</artifactId>    <optional>true</optional></dependency>

原文鏈接:
https://www.cnblogs.com/qdxorigin/p/16396478.html

分享到:
標簽:YAML
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定