YML
YAML
YAML Ain't Markup Language 这是一个递归写法 ;
- YAML A Markup Language:是一个标记语言
- YAML isn't Markup Language:不是一个标记语言;
标记语言: 我们以前用的配置文件,大多都使用 xxxx.xml 文件 ;
YAML : 是一种以数据为中心的配置文件, 比json,xml 等更适合做配置文件(xml 配置 将太多的浪费在了标签上面)。
yml 基本语法
server:
port: 8081
path: /hello
属性和值也是大小写敏感;k:(空格)v:表示一对键值对(空格必须有);
以 空格 的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的
-
字面量:普通的值(数字,字符串,布尔)
k: v:字面直接来写;
字符串默认不用加上单引号或者双引号;
"":双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思
'':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据
-
对象、Map(属性和值)(键值对):
k: v:在下一行来写对象的属性和值的关系;注意缩进
对象还是k: v的方式
friends:
lastName: zhangsan
age: 20
行内写法:
friends: {lastName: zhangsan,age: 18}
-
配置文件注入

JavaBean
配置提示
可以导入配置文件处理器依赖,以后编写配置就会有代码提示;
SpringBoot多个yml实现多环境
spring: # 环境 dev:开发环境|test:测试环境|prod:生产环境 profiles: active: dev #激活的配置文件
在激活application-dev.yml时若其中存在application.yml同名配置时后者的配置属性会被覆盖(即激活配置文件优先级高于总配置文件)
单个yml实现多环境
用---实现多文件内容的分割,application.yml中用spring.profiles.active: 实现指定的文件
spring: profiles.active: dev # 默认的profile为dev,其他环境通过指定启动参数使用不同的profile,比如: # 测试环境:java -jar spring-boot.jar --spring.profiles.active=test # 生产环境:java -jar spring-boot.jar --spring.profiles.active=prod --- # 开发环境配置 spring: profiles: dev datasource: url: jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC username: root password: root driver-class-name: com.mysql.jdbc.Driver server: port: 8080 --- # 测试环境配置 spring: profiles: test datasource: url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC username: root password: test driver-class-name: com.mysql.jdbc.Driver server: port: 88 --- # 生产环境配置 spring: profiles: prod datasource: url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC username: root password: prod driver-class-name: com.mysql.jdbc.Driver
如果这篇文章对你有用,可以关注本人微信公众号获取更多ヽ(^ω^)ノ ~

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2019-02-22 基于Lua语言的触动精灵脚本开发