本文主要详细介绍SpringBoot项目中配置文件的优先级。
优先级高的配置会覆盖优先级低的配置。
总体优先级
(1)命令行参数,比如--server.port=8081
(2)JVM系统属性,通过System.getProperties()方法获取;
(3)系统环境属性,通过System.getenv()方法获取;
(4)jar包外部的application-{profile}.properties/yml配置文件,如果没有指明激活的profile,则默认为default;
(5)jar包内部的application-{profile}.properties/yml配置文件,如果没有指明激活的profile,则默认为default;
(6)jar包外部的application.properties/yml配置文件;
(7)jar包内部的application.properties/yml配置文件;
(8)通过@Configuation注解类上的@PropertySource注解引入的配置文件;
(9)通过SpringApplication.setDefaultProperties指定的默认属性;