大三學習進度6

2022-09-18 13:03:12 字數 2358 閱讀 8399

spring boot 提供了大量的自動配置,極大地簡化了spring 應用的開發過程,當使用者建立了乙個 spring boot 專案後,即使不進行任何配置,該專案也能順利的執行起來。當然,使用者也可以根據自身的需要使用配置檔案修改 spring boot 的預設設定。

springboot 預設使用以下 2 種全域性的配置檔案,其檔名是固定的。

本節我們將詳細介紹 yaml 語言的語法及使用。

yaml 簡介

yaml 全稱 yaml ain't markup language,它是一種以資料為中心的標記語言,比 xml 和 json 更適合作為配置檔案。

想要使用 yaml 作為屬性配置檔案(以 .yml 或 .yaml 結尾),需要將 snakeyaml 庫新增到 classpath 下,spring boot 中的 spring-boot-starter-web 或 spring-boot-starter 都對 snakeyaml 庫做了整合, 只要專案中引用了這兩個 starter 中的任何乙個,spring boot 會自動新增 snakeyaml 庫到 classpath 下。

server:

port: 8081

yaml 語法

yaml 的語法如下:

使用縮排表示層級關係。

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

縮排的空格數不重要,但同級元素必須左側對齊。

大小寫敏感。

例如:spring:

profiles: dev

datasource:

url: jdbc:mysql:

username: root

password: root

driver-class-name: com.mysql.jdbc.driver

yaml 常用寫法

yaml 支援以下三種資料結構:

物件:鍵值對的集合

陣列:一組按次序排列的值

字面量:單個的、不可拆分的值

yaml 字面量寫法

字面量是指單個的,不可拆分的值,例如:數字、字串、布林值、以及日期等。

在 yaml 中,使用「key:[空格]value」的形式表示一對鍵值對(空格不能省略),如 url: www.biancheng.net。

字面量直接寫在鍵值對的「value」中即可,且預設情況下字串是不需要使用單引號或雙引號的。

name: bianchengbang

若字串使用單引號,則會轉義特殊字元。

name: zhangsan \n lisi

輸出結果為:

zhangsan \n lisi

若字串使用雙引號,則不會轉義特殊字元,特殊字元會輸出為其本身想表達的含義

name: zhangsan \n lisi

輸出結果為:

zhangsan 

lisi

yaml 物件寫法

在 yaml 中,物件可能包含多個屬性,每乙個屬性都是一對鍵值對。

yaml 為物件提供了 2 種寫法:

普通寫法,使用縮排表示物件與屬性的層級關係。

website: 

name: bianchengbang

url: www.biancheng.net

行內寫法:

website:

yaml 陣列寫法

yaml 使用「-」表示陣列中的元素,普通寫法如下:

pets:

-dog

-cat

-pig

行內寫法

pets: [dog,cat,pig]

復合結構

以上三種資料結構可以任意組合使用,以實現不同的使用者需求,例如:

person:

name: zhangsan

age: 30

pets:

-dog

-cat

-pig

car:

name: qq

child:

name: zhangxiaosan

age: 2

yaml 組織結構

乙個 yaml 檔案可以由乙個或多個文件組成,文件之間使用「---」作為分隔符,且個文件相互獨立,互不干擾。如果 yaml 檔案只包含乙個文件,則「---」分隔符可以省略。

純文字複製

website:

name: bianchengbang

url: www.biancheng.net

website:

pets:

-dog

-cat

-pig

pets: [dog,cat,pig]

name: "zhangsan \n lisi"

name: 'zhangsan \n lisi'

大三學習進度67

sort 方法可以指定公升序或降序排序。sort 方法第乙個引數為要排序的字段,第二個字段指定排序規則,1為公升序,1為降序,預設為公升序。對欄位 alexa 按公升序排序 usr bin python3importpymongomyclient pymongo.mongoclient mongod...

大三學習進度50

建造者模式 builder pattern 使用多個簡單的物件一步一步構建成乙個複雜的物件。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。乙個 builder 類會一步一步構造最終的物件。該 builder 類是獨立於其他物件的。意圖 將乙個複雜的構建與其表示相分離,使得同樣的構...

大三學習進度45

spring 的事務管理是基於 aop 實現的,而 aop 是以方法為單位的。spring 的事務屬性分別為傳播行為 隔離級別 唯讀和超時屬性,這些屬性提供了事務應用的方法和描述策略。在 j a ee 開發經常採用的分層模式中,spring 的事務處理位於業務邏輯層,它提供了針對事務的解決方案。在 ...