官方是不推荐我们用properties配置文件的,一般推荐我们用yaml,因此我们可以创建一个yaml
来配置一下端口号
是不是可以发现与properties的区别了,注意这里port:后面是有个空格的,删除空格就用不了
也就是yaml对空格要求十分高,要注意层级关系。
properties只能配置key:value键值对,而yaml可以配置键值对,数组,对象。
那我们配置这些东西有什么用呢?yaml最大的功能来了,给实体类注入匹配值!!
我们如果想用注解给实体类赋值是用@Value是吧,如果用yaml呢
如果@ConfigurationProperties(prefix = "person")保持,可以在pom.xml里面添加,如果没打印出来,查看是否在maven里面过滤了.yaml资源
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</dependency>
举一反三,如果我们要配置数据库呢?url,root,password是不是也可以用这种方式去配。
对两种注值注解做个对比
扩展一下,yaml里面还可以用占位符,如
random: ${random.int(1,100)}
看表格,里面有个松散绑定 这个什么意思呢? 比如我的yml中写的last-name,这个和lastName是一样的, - 后面跟着的字母默认是大写的。这就是松散绑定。可以理解为能自动识别不同的命名方式。JSR303校验也是导入包,然后去使用。十分简单,可以直接去网上查相应的注解。
yaml配置文件可以写在不同的位置,关于优先级看这篇文件
springboo yml配置文件加载优先级实测_Robert L的博客-CSDN博客_yml文件优先级
如何配置多套环境呢?
用---分隔
spring:
profiles:
active: dev
---
server:
port: 8081
spring:
config:
activate:
on-profile: dev
---
server:
port: 8082
spring:
config:
activate:
on-profile: test
此时选择的就是dev版本。