yml文件如何配置datasource
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/webDb //連結的dburl
username: root //db用戶名
password:
jpa:
hibernate:
ddl-auto: update
show-sql: true
B. 寫yml,寫的腿疼。
配置文件界,yaml、toml與json三者統治,讓Java開發者對properties文件的使用深感羞愧。然而,當你讀完這篇文章,你也許會感到更深的羞愧,甚至是憤怒。人工智慧調參、K8s調參師們,已經成功轉型為yml配置大師。作為一名長期使用yml文件的SpringBoot框架使用者,有時對yml的呈現形式感到困惑,這讓人感到羞愧,甚至自責。
YAML,源自XML的一個子集,誕生於2009年。yml文件的挑戰之一是其縮進規則,如同Python語言,依賴空格而非TAB進行層級表示。空格數量並不重要,關鍵在於同一層級元素的左側對齊。這令CV黨們難以適應,但對其他開發者來說可能只是小煩惱。
配置文件的使命是解決各種需求,以Redis為例。掌握了字元串和集合的表示方法,就能基本解決大部分問題。讓我們逐一探討:
1. **字元串**是最基本的配置,也是最常用的。在Spring中,字元串可以是帶引號或不帶引號的形式,三行配置的效果相同。
支持多行文本的方法是:
yml
key:
value:
text:
- line1
- line2
不需要額外的結束符號,依賴縮進來區分。
2. **數字**接收時,yml解析器會自動轉換為數值類型。若配置為字元串形式,即使不帶引號,也會強制轉換為數字。以0開頭表示八進制,需特別注意。
3. **字典**以冒號分隔鍵值對,但鍵不能包含特殊字元,否則會被正確識別。例如:
yml
key: value: "some value with 'quotes'"
這種寫法是合法的。
4. **對象**實質上是多個屬性的集合,yml文件中的字典形式與JSON一致。
5. **列表**支持數組和List形式,兩種寫法均可。嵌套列表或字典時,yml文件的復雜性增加,需要更仔細的縮進。
6. **特殊數據**允許復雜的強制轉換,如:
yml
key: "2021-06-04"
可以將日期字元串強制轉換為日期格式。
使用標記和引用:
yml
&d
key: value
*d
yml文件中的鍵甚至可以使用復雜的結構作為標識,以特殊方式加以標記和引用。
通過掌握這些技巧,你可以讓配置文件變得既復雜又不易被他人改動。在SpringBoot項目中,嘗試引入這些有趣的變化,或許能讓你的基礎架構部門感到頭疼。改造一個普通datasource配置文件:
yml
# 定義特殊標識符
&d
key: value
# 引用標識符
d
此配置與上述配置效果相同,展示了yml文件的強大靈活性。學習yml的復雜寫法,既能滿足需求,又能增加代碼的趣味性,同時考驗著你的業務理解與配置管理能力。