YAML是一种编写配置文件的语法,表现为使用.yml
作为扩展名的配置文件,Spring框架默认并不支持此类配置文件,而Spring Boot的基础依赖项中已经包含解析此类文件的依赖项,所以,在Spring Boot项目可以直接使用此类配置文件。
在Springboot项目中,使用.properties和.yml配置是等效的,均可以正常识别并使用.
xx.xx.xx
这类属性名spring.datasource.username=root
spring.datasource.password=root
spring:
datasource:
username: root
password: root
当然.yml也可以使用xx.xx.xx.所有也能像在.properties中那样配置
注意:YAML的解析相对更加严格,如果在此类配置文件中出现了错误的语法,甚至只是一些不应该出现的字符,都会导致解析失败!并且,如果直接复制粘贴整个文件,还可能出现乱码问题!
同一个项目,在不同的环境中(例如开发环境,测试环境,生成环境),需要的配置值可能是不一样的,例如日志的显示级别,连接数据库的配置参数等,如果把同一个配置文件的多个属性的值反复修改是不现实的.
Spring框架提供了Profile配置机制,在Spring Boot中更是简化了此项操作,它允许使用
application_自定义名称.properties作为Profile配置文件的文件名,这类配置文件默认是不加载的!
例如,在application.properties的同级别路径下创建applicaton-dev.properties,添加配置如下
# 此配置文件是【开发环境】的配置 #
# 此配置文件需要被激活才会生效 #
# ######################## #
# 连接数据库的配置参数
spring.datasource.url=jdbc:mysql://localhost:3306/mall_pms?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
# 日志的显示级别
logging.level.cn.tedu.csmall=trace
这种配置默认是被加载的,需要激活才能使用,在application.properties中,根据以上配置文件的名称(application-dev.properties)来激活配置文件
# 激活Profile配置
spring.profiles.active=dev
我们的application.properties是始终加载的配置,而applicaton-自定义名称.properties是必须激活才会加载的配置
如果application.properties与被激活的Profile配置中存在同名的属性,配置值却不相同时,在执行时候,将以为Profile配置为准!