ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
[TOC] # yaml配置文件 **需要注意的是`YAML`文件不能使用`@PropertySource`加载** YML文件的扩展名可以使用.yml或者.yaml **如果两个配置文件都有,会把两个配置文件合并,如果有重复属性,以Properties中为准 .** 注意空格 ~~~ name: Darcy age: 12 # ~表示NULL值 email: ~ # 多行字符串可以使用|保留换行符,也可以使用>折叠换行。 # +表示保留文字块末尾的换行,-表示删除字符串末尾的换行。 message:|- Hello world ~~~ ## 普通数据 语法: key: value ~~~ name: haohao ~~~ ## 配置对象数据 语法: ~~~ key: key1: value1 key2: value2 或者: key: {key1: value1,key2: value2} ~~~ 例子 ~~~ person: name: haohao age: 31 addr: beijing #或者 person: {name: haohao,age: 31,addr: beijing} ~~~ 注意:key1前面的空格个数不限定,在yml语法中,相同缩进代表同一个级别 ## 配置Map数据 同上面的对象写法 ### Map类型的key 如果Map类型的key包含非字母数字和`-`的字符,需要用`[]`括起来,比如 ~~~ spring: my-example: '[foo.baz]': bar ~~~ ## 配置数组(List、Set)数据 语法: ~~~ key: - value1 - value2 或者: key: [value1,value2] ~~~ 例子 ~~~ city: - beijing - tianjin - shanghai - chongqing #或者 city: [beijing,tianjin,shanghai,chongqing] #集合中的元素是对象形式 student: - name: zhangsan age: 18 score: 100 - name: lisi age: 28 score: 88 - name: wangwu age: 38 score: 90 ~~~ ## 结合java ~~~ jdbc: driverClassName: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/app username: root password: root user: name: jack age: 21 language: - java - php - ios ~~~ ~~~ @Data public class JdbcProperties { String url; String driverClassName; String username; String password; User user = new User(); class User{ String name; int age; List<String> language; } } ~~~ ## 多环境 如果是使用 YAML 配置文件,我们可以使用文件块的形式,在一个 YAML 文件就可以达到多文件配置的效果,下面是 Spring Boot 使用 YAML 文件进行多环境配置的方式。 ~~~ server: port: 8083 profiles: active: dev # 指定环境为dev # 使用三个---进行文档块区分 --- server: port: 8084 spring: profiles: dev --- server: port: 8085 spring: profiles: prod ~~~ 除了以上的两种配置文件激活方式之外,还有另外两种种激活方式。 * 命令行 ,运行时添加 `--spring.profiles.active=prod` * Jvm 参数 ,运行时添加 `-Dspring.profiles.active=prod` 如果需要激活其他的配置文件,可以使用 `spring.config.location=G:/application.properties` 进行配置