一、配置文件的四级分类
如果开发时,存在两个配置文件,不冲突的沿用,冲突的高级别覆盖低级别。
1.第一级文件(最低)
SpingBoot创建好的application.yml,在创建新项目是自带的。
在resources包下面,部分为applicat.properties,一样,均为配置文件
2.第二级文件
在resources包下创建config包,在config包中再次创建application.yml,该配置文件为第二级文件
3.第三级文件
与工程目录(jar包)同层下的文件,这个文件要覆盖开发时候的所有文件。
(更正:工程目录 ≠ jar包,jar包 = 工程目录打包压缩后的文件)
4.第四级文件(最高)
通常放在config文件夹中:config/application.yml。
二、作用
4级与3级留做系统打包后设置通用属性,4级常用于运维经理进行线上整体项目部署方案调控。
2级与1级用于系统开发阶段设置通用属性,2级常用于项目经理进行整体项目属性调控。
三、拓展
如果yml与properties在不同层级中共存会是什么效果?
例:类路径application,properties属性是否覆盖文件系统config目录中application,yml属性:
高优先级位置:./config/application.yml(文件系统config目录)。
低优先级位置:classpath:/application.properties(类路径根目录)
所以file:./config/application.yml 中的配置,会覆盖 classpath:/application.properties 中的同名配置。
四、yml版多配置文件格式
如果一个配置文件里有多个环境:
#设置环境 #生产环境 server: port: 8000 #开发环境 server: port: 8001 #测试环境 server: port: 8002可以将他们“命名”,然后“点名”让哪个运行
#应用环境 spring: profiles: active: test #设置环境 #生产环境 Spring profiles: pro server: port: 8000 #开发环境 Spring profiles: deve server: port: 8001 #测试环境 Spring profiles: test server: port: 8002将需要用到的环境名称写在
spring:
profiles:
active:{xxx}
即可
注意:目前版本更新,profiles会被拉掉,提醒已经过时了,但仍然可以使用,不用担心。
也可以同时创建多个配置文件:
一个主文件,用来“点名”。注意,除主配置文件,其他配置文件的命名必须不同。
其他配置文件里不用再“命名”,运行时,主文件“点名”点的是其他配置文件的文件名。
名称和application用 - 链接