配置文件
文件类型
1、properties
2、yaml
YAML
1、标记语言
2、基本语法
(1)key: value
(2)冒号之后需要一个空格
(3)大小写敏感
(4)使用缩进表示层级关系
(5)缩进不允许使用 Tab,只允许空格
(6)缩进的空格数不重要,只要相同层级的元素左对齐即可
(7)# 表示注释
(8)字符串无需加引号
(9)'' 表示字符串内容被转义;"" 不会对字符串内容转义
(10)引用:& 用来建立锚点(defaults),<< 表示合并到当前数据,* 用来引用锚点
数据类型
1、字面量 / 纯量 / 标量(scalars)
(1)单个、不可再分的值
(2)字符串布尔值、整数、浮点数、Null、时间、日期
(3)格式
key: value
2、对象
(1)键值对的集合,又称为映射(mapping)/ 哈希(hashes)/ 字典(dictionary)
(2)map、hash、set、object
(3)对象键值对使用冒号结构表示 key: value,冒号后面要加一个空格
(4)行内写法
key: {key1:value1,key2:value2,key3:value3}
(5)对象表示法,使用缩进表示层级关系
key:
key1: value1
key2: value2
key3: value3
(6)较为复杂的对象格式,可以使用问号加一个空格代表一个复杂的 key,配合一个冒号加一个空格代表一个 value
#意思即对象的属性是一个数组 [complexkey1,complexkey2],对应的值也是一个数组 [complexvalue1,complexvalue2]
?
- complexkey1
- complexkey2
:
- complexvalue1
- complexvalue2
3、数组
(1)一组按次序排列的值,又称为序列(sequence)/ 列表(list)
(2)array、list、queue
(3)以 - 开头的行表示构成一个数组
- A
- B
- C
(4)行内写法,支持多维数组
key: [value1, value2, value3 ...]
(5)常规写法
key:
- value1
- value2
- value3
(6)数据结构的子成员是一个数组,则可以在该项下面缩进一个空格
-
- A
- B
- C
(7)一个相对复杂的例子
#意思是 companies 属性是一个数组,每一个数组元素又是由 id、name、price 三个属性构成。
companies:
-
id: 1
name: company1
price: 200W
-
id: 2
name: company2
price: 500W
#数组也可以使用流式(flow)的方式表示
companies: [{id: 1,name: company1,price: 200W},{id: 2,name: company2,price: 500W}]
配置提示
1、自定义 POJO 和配置文件绑定时,没有提示代码
2、引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
3、引入 jar 包与业务无关,只简化开发
4、打包项目时,排除以上依赖
<project>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战