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的复杂写法,既能满足需求,又能增加代码的趣味性,同时考验着你的业务理解与配置管理能力。