专业电商网站开发,买了一台配置强悍的电脑怎么做网站服务器,绍兴模板建站公司,团购网站开发需要多久重学SpringBoot3-yaml文件配置 引言YAML 基本语法YAML 数据类型YAML 对象YAML 数组复合结构标量引用 YAML 文件结构Spring Boot 中的 YAML 配置注意事项总结参考 引言
YAML#xff08;YAML Ain’t Markup Language#xff09;是一种常用于配置文件的数据序列化格式#xff… 重学SpringBoot3-yaml文件配置 引言YAML 基本语法YAML 数据类型YAML 对象YAML 数组复合结构标量引用 YAML 文件结构Spring Boot 中的 YAML 配置注意事项总结参考 引言
YAMLYAML Ain’t Markup Language是一种常用于配置文件的数据序列化格式因其易于阅读和书写而广受欢迎。在 Spring Boot 应用中YAML 文件通常用于替代传统的 properties 文件用于配置应用的各种参数。本教程将引导你了解 YAML 文件的基本写法和在 Spring Boot 中的应用。
YAML 的配置文件后缀为 .yml 或 .yaml如app.yml。
YAML 基本语法
YAML 的设计目标是易于阅读和书写其主要元素包括
缩进YAML 使用缩进表示层级关系通常使用两个空格作为缩进级别不推荐使用 Tab 键。键值对使用冒号加空格分隔键和值。列表使用短横线 - 表示列表项。注释使用井号 # 开头标记注释。大小写敏感建议使用串式命名法短横线-代替驼峰即使用 device-type 代替 deviceType。
YAML 数据类型
YAML 支持以下几种数据类型
对象键值对的集合又称为映射mapping/ 哈希hashes / 字典dictionary;数组一组按次序排列的值又称为序列sequence / 列表list;标量scalars单个的、不可再分的值;
YAML 对象
对象键值对使用冒号结构表示 key: value注意冒号后面要加一个空格。也可以使用 key:{key1: value1, key2: value2, …}。还可以使用缩进表示层级关系。
示例
key: child-key: valuechild-key2: value2较为复杂的对象格式可以使用问号加一个空格代表一个复杂的 key配合一个冒号加一个空格代表一个 value
? - k1- k2- k3
:- v1- v2- v3YAML 数组
以-开头的行表示构成一个数组注意-后面有一个空格
- A
- B
- CYAML数组也可以使用行内表示
key: [value1, value2, ...]数据子成员是一个数组注意缩减一个空格
-- A- B- C数据子成员是一个对象数组
list:-id: 1name: n1-id: 2name: n2意思是 list 属性是一个对象数组每一个数组元素又是由 id、name 两个属性构成。
数组也可以使用流式flow 的方式表示 复合结构
数组和对象可以构成复合结构例
YAML Resources:YAML Specifications:- YAML 1.2:- Revision 1.2.2 # Oct 1, 2021 *New*- Revision 1.2.1 # Oct 1, 2009- Revision 1.2.0 # Jul 21, 2009- YAML 1.1- YAML 1.0YAML Matrix Chat: #chat:yaml.io # Our New Group Chat Room!YAML IRC Channel: libera.chat#yaml # The old chat标量
纯量是最基本的不可再分的值包括
字符串布尔值整数浮点数Null时间日期
使用一个例子来快速了解标里可以使用哪些表示形式
boolean: - TRUE #true,True都可以- FALSE #falseFalse都可以
float:- 3.14- 6.8523015e5 #可以使用科学计数法
int:- 123- 0b1010_0111_0100_1010_1110 #二进制表示
null:nodeName: nodeparent: ~ #使用~表示null
string:- 哈哈- Hello world #可以使用双引号或者单引号包裹特殊字符- newlinenewline2 #字符串可以拆成多行每一行会被转化成一个空格
date:- 2018-02-17 #日期必须使用ISO 8601格式即yyyy-MM-dd
datetime: - 2018-02-17T15:02:3108:00 #时间使用ISO 8601格式时间和日期之间使用T连接最后使用代表时区引用
“”锚点和“*****”别名可以用来引用相当于定义变量和使用变量:
- V1 java
- C
- C
- *V1再看一个复杂的例子
defaults: defaultsadapter: postgreshost: localhostdevelopment:database: myapp_development: *defaultstest:database: myapp_test: *defaults用来建立锚点defaults 表示合并到当前数据* 用来引用锚点。
YAML 文件结构
以下是一个简单的 YAML 配置文件示例
server:port: 8080context-path: /apispring:datasource:url: jdbc:mysql://localhost:3306/mydbusername: userpassword: passjpa:hibernate:ddl-auto: updateshow-sql: truemyapp:feature:enabled: truesecurity:level: high在这个例子中 server, spring, myapp 是顶级配置项。 使用缩进表示层级结构例如 datasource 是 spring 下的子项。 列表可以表示为 myapp:roles:- admin- user- guestSpring Boot 中的 YAML 配置
在 Spring Boot 应用中YAML 文件通常命名为 application.yml放置在 src/main/resources 目录下。Spring Boot 会自动加载这个文件并将其属性绑定到 Spring 环境中。
示例配置数据库连接
spring:datasource:url: jdbc:mysql://localhost:3306/mydbusername: dbuserpassword: dbpassdriver-class-name: com.mysql.cj.jdbc.Driver示例配置多环境
你可以为不同的环境定义不同的配置文件如 application-dev.yml, application-test.yml, application-prod.yml并在主配置文件中指定活跃的配置文件
spring:profiles:active: dev注意事项 确保正确使用缩进因为错误的缩进会导致配置无法正确解析。 避免在 YAML 文件中使用 Tab 键这可能导致解析错误。 注意字符串中特殊字符的处理必要时可以使用双引号或单引号。 单引号不会转义【\n 则为普通字符串显示】双引号会转义【\n会显示为换行符】 大文本 |开头大文本写在下层保留文本格式换行符正确显示开头大文本写在下层折叠换行符 多文档合并 使用---可以把多个yaml文档合并在一个文档中每个文档区依然认为内容独立
总结
YAML 提供了一种更为人性化的配置文件格式它通过简洁的结构化格式使得配置信息更加易于理解和维护。在 Spring Boot 中通过使用 YAML开发者可以轻松地管理和切换不同环境下的配置优化开发流程。掌握 YAML 的基本写法和在 Spring Boot 中的应用将有助于提高你的开发效率。
参考
YAML 入门教程 | 菜鸟教程
YAML 备忘清单