一般项目中用到的spring boot的配置文件主要有以下两种:
1.properties文件
键值对的properties属性文件
2.Yml文件
yml 是一种 yaml 格式的配置文件,主要采用一定的空格、换行等格式排版进行配置;
yaml 是一种直观的能够被计算机识别的的数据序列化格式,容易被人类阅读,yaml 类似于 xml,但是语法比 xml 简洁很多;
值与前面的冒号配置项必须要有一个空格;
yml 后缀也可以使用 yaml 后缀;
3.配置文件读取优先级
properties优先级>yml,如果项目中既有application.properties文件又有application.yml文件,
application.properties文件配置如下
application.yml配置如下:
这时启动工程观察日志发现
,说明properties文件的优先级大于yml文件的优先级
4. 多环境配置
在spring Boot中,多环境配置文件的文件名需要满足 application-{profile}.properties/.yml的格式,其中{profile}对应环境标识,如下所示:
application-dev.properties 开发环境
application-test.properties 测试环境
application-prod.properties 生产环境
#比如配置测试环境
application.properties如下:
server.port=9000
spring.profiles.active=dev
application-dev.properties配置如下
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/transfer-demo?useUnicode=true&c haracterEncoding=utf8&useSSL=false
通用的配置信息在application.yml或者.properties配置文件中,环境独有的配置信息配置到各个环境对应的yml或properties配置文件中,把server.port=9000公共文件配置到application.properties主配置文件中,各环境对应的数据库信息配置到不同的环境配置文件.
生产环境也是如此
#比如配置生产环境
spring.profiles.active=product
application-product.properties
Application.yml配置文件
server:
port: 9000
spring:
profiles:
active:
- dev
Application-dev.yml
server:
port: 9761
启动日志分析:
可以看到虽然application.yml中配置了server的端口,但是由于指定了spring.profiles.active=dev,服务启动端口变成了9761,可见,spring.profiles.active的优先级比直接在application.yml中的高