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}
-
配置文件注入
![](https://img2022.cnblogs.com/blog/1208477/202203/1208477-20220315125700311-1093986347.png)
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
如果这篇文章对你有用,可以关注本人微信公众号获取更多ヽ(^ω^)ノ ~
![微信公众号二维码](https://images.cnblogs.com/cnblogs_com/aeolian/1679458/o_wechat_gzh_qrcode.jpg)