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 的事務處理位於業務邏輯層,它提供了針對事務的解決方案。在 ...