SpringBoot配置文件值自动注入与多Profile[个人笔记]​​​​​​ YAML基本语法k:(空格)v表示一对键值对空格必须有以空格的缩进来控制层级关系只要是左对齐的一列数据都是同一个层级的属性和值大小写敏感值的写法字面量普通的值数字字符串布尔k: v字面直接来写字符串默认不用加上单引号或者双引号 双引号不会转义字符串里面的特殊字符特殊字符会作为本身想表示的意思 name: zhangsan \n lisi输出zhangsan 换行 lisi 单引号会转义特殊字符特殊字符最终只是一个普通的字符串数据name: ‘zhangsan \n lisi’输出zhangsan \n lisi对象、Map属性和值键值对k: v在下一行来写对象的属性和值的关系注意缩进配置文件值注入person: lastName: hello age: 18 boss: false birth: 2017/12/12 maps: {k1: v1, k2: 12} lists: - lisi - zhaoliu dog: name: 小狗 age: 12ConfigurationProperties支持松散绑定和层级结构Value无法直接将配置文件的属性注入到嵌套对象这里使用ConfigurationPropertiesDataComponentConfigurationProperties(prefixperson)publicclassPerson{privateStringlastName;privateIntegerage;privateBooleanboss;privateDatebirth;privateMapString,Objectmaps;privateListObjectlists;privateDogdog;OverridepublicStringtoString(){returnPerson{lastNamelastName\, ageage, bossboss, birthbirth, mapsmaps, listslists, dogdog};}}运行结果Person{lastNamehello, age18, bossfalse, birthTue Dec 12 00:00:00 CST 2017, maps{k1v1, k212}, lists[lisi, zhaoliu], dogDog{name小狗, age12}}多Profile通过yml多文档块实现默认配置不指定 profile 时生效server:port: 8081激活 prod profile也可以放在命令行参数中spring:profiles:active: proddev profile 配置spring:config:activate:on-profile: devserver:port: 8883prod profile 配置spring:config:activate:on-profile: prod运行结果