在 spring boot 中,有两种配置文件,一种是application.properties,另一种是application.yml,两种都可以配置spring boot 项目中的一些变量的定义,参数的设置等。
其中yml格式文件编写规范参考文章手把手学系列之YAML格式文件规范学习
一般在一个项目中,总是会有好多个环境。比如:
开发环境 -> 测试环境 -> 预发布环境 -> 生产环境
每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一点不同。
Spring Boot提供了一种优先级配置读取的机制来帮助我们从这种困境中走出来。
常规情况下,我们都知道Spring Boot的配置会从application.properties
中读取。
实际上,从resource
目录下的application.properties
文件读取是Spring Boot配置链中的一环而已。
根据Spring Boot的文档,配置使用的优先级从高到低的顺序,具体如下所示:
1. 命令行参数。
2. 通过 System.getProperties() 获取的 Java 系统参数。
3. 操作系统环境变量。
4. 从 java:comp/env 得到的 JNDI 属性。
5. 通过 RandomValuePropertySource 生成的“random.*”属性。
6. 应用 Jar