1 配置文件
SpringBoot的全局配置文件,默认为:
- application.properties
- application.yaml
作用:修改SpringBoot自动配置的默认值
2 yaml
YAML(YAML Ain’t Markup Language),以数据为中心,比json、xml等更适合做配置文件。
server:
port: 8080 # 内嵌的 Tomcat 端口号。默认值为 8080。
2.1 基本语法
key:(空格)value
表示一对键值对(空格必须有);
以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一层级的
server:
port: 8081
path: /hello
字面量:普通的值(数字,字符串,布尔)
k: v
字符串默认不用加上单引号或者双引号;
#双引号不会转义特殊字符
#实际输出 meteor \n smartdog
name: "meteor \n smartdog"
#单引号会转义特殊字符
#实际输出 meteor 换行 smartdog
name: 'meteor \n smartdog'
对象、Map(键值对)
k:
在下一行来写对象的属性和值的关系;注意缩进
friends:
lastName: meteor
age: 20
#行内写法
friends: {lastName: meteor,age: 21}
数组(List、Set)
用- value
表示数组中的一个元素
pets:
- cat
- dog
- pig
#行内写法
pets: [cat,dog,pig]
2.2 profile用法
我们可以通过多样性的文档来解决多环境的需求。
在一个yml文件中我们可以把文档划分为多个块:
acme:
enabled: true
remote-address: 192.168.0.108
spring:
profiles: default ##使用spring.profiles指定块的名字
---
acme:
enabled: true
remote-address: 192.168.0.109
spring:
profiles: development
---
acme:
enabled: true
remote-address: 192.168.0.110
spring:
profiles: production
要启动某一块,使某一块的配置生效,需要在启动时传参:
-Dspring.profiles.active=production
另一种方式,不常用
acme:
enabled: true
remote-address: 192.168.0.108
spring:
profiles:
active: production # 指定开启的块
当块中的配置过多的时候,可以将每个块分为一个yaml文件,命名规则为:application-块名.yml
,启用的方法不变。
特别的,在yaml中,想要当前行之前的配置,或者传入的参数,可以通过EL表达式来获取:
acme:
enabled: true
remote-address: 192.168.0.110
host: ${acme.remote-address}:8080 #192.168.0.110:8080