如果同时存在application.properties与application.yml,那么SB会如何去读呢?
默认是先读properties的,然后才会去读yaml文件。
以图中有几个配制文件,那么系统会如何去读呢?
1、会先读application.properties,然后如何检测到里面指定了配制文件,那么就会去读相应的文件。
指定prod
spring.profiles.active=prod
指定要去读application-prod.properties文件,同样的配制在application.properties与application-prod.properties,那么application.properties里面的配制会忽略。
2、指定dev
spring.profiles.active=dev
那么系统将会读取application-dev.properties
下面的没有亲测,可以试试,参考其他小伙伴的。
配置文件名及路径的指定
如果不喜欢将 application.properties 作为配置文件名,你可以通过指定 spring.config.name 环境属性来切换其他的名称,
也可以使用 spring.config.location 环境属性引用一个明确的路径(目录位置或文件路径列表以逗号分割)。
$ java -jar myproject.jar --spring.config.name=myproject
或
$ java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties
关于配置文件路径的读取顺序
–file:./config/ –file:./ –classpath:/config/ –classpath:/
帖张图:
参考: