Spring Boot支持的配置文件类型
application.properties
application.yml
配置文件的名称固定为application
yaml(yml)配置文件详解
概述
在Spring中使用xml作为配置文件,Spring Boot中使用yml作为配置文件,yml一种以数据为中心的标记语言,不存在xml各种繁琐的标签
基本语法
k: (空格)v表示一个键值对
如果存在层级关系,以空格缩进来控制层级关系,左侧需要对齐
server:
port: 8080
address:
error:
path: /erro
值支持的写法
字面量:字符串,布尔值,数字
字面量默认不需要引号,双引号和单引号有特殊用法
双引号内的转义字符不会发生转义,单引号内的转义字符会发生转义
对象 : map(键值对)
还是使用k: (空格)v的方式
server:
port: 8080
address:
error:
数组:list ,set
使用-值的方式表示
pets:
- cat
- dog
- pig
yml语法推荐教程 :http://www.ruanyifeng.com/blog/2016/07/yaml.html?f=tt
Profile
多profile文件–应用properties配置文件
编写 多个配置文件,分别用于测试,开发,运行等阶段,如
application-dev.properties 用于开发环境中的配置文件
application-prod.properties 用于生产环境的配置文件
选择激活哪个profile
spring.profiles.active=dev 激活开发环境配置文件
命令行激活 java -jar ####.jar --spring.profiles.active=dev
jvm 参数激活 -Dspring.profiles.active=dev
yml配置文件支持文档快模式–应用yml配置文件
server:
port: 8080
spring:
profiles:
active:
---
server:
port: 8081
spring:
profiles: dev
---
server:
port: 8082
spring:
profiles: prod
配置文件加载位置
-项目根目录/config/
-项目根目录/
-classpath/config/
-classpath/
上面是按照从高到低排列的加载顺序,所有配置文件都会加载,形成互补加载,高优先级的配置文件会覆盖低优先级配置文件中的相同配置
外部配置文件加载位置
1.命令行参数
例如 java -jar ****.jar --server.port=80
2.jNDI
3.JAVA系统属性:system.getProperties()
4.操作系统环境变量
5.jar包外部application.yml(properties)带-spring.profile
6.jar包内部application.yml(properties)带-spring.profile
7.jar包外部application.yml(properties)不带-spring.profile
8.jar包内部application.yml(properties)不带-spring.profile
9.带有@Configuration注解类上的@PropertySource()
10.通过SpringBootApplication.setDefault()指定的默认属性
以上顺序按照从高到低排序,高优先级的配置文件会覆盖低优先级配置文件中的相同配置