Spring Boot 也可以从以下位置加载配置,优先级从高到低,高优先级的配置覆盖低优先级的配置,所有配置会形成互补配置;
1.命令行参数(多个配置指令用空格隔开)
java -jar 项目jar包名 --server.port=8088 --server.context.path=/boot
2.来自java:comp/env的JNDI属性
3.Java系统属性(System.getProperties())
4.操作系统环境变量
5.RandomValuePropertySource配置的random.*属性值
优先加载带profile的,由jar外向内进行加载,覆盖:
6.jar包外部的application-{profile}.properties 或 application.yml(带spring.profile)配置文件
7.jar包内部的application-{profile}.properties 或 application.yml(带spring.profile)配置文件
8.jar包外部的application.properties 或 application.yml(不带spring.profile)配置文件
9.jar包外部的application.properties 或 application.yml(不带spring.profile)配置文件
10.@Configuration注解类上的@PropertySource
11.通过SpringApplication.setDefaultProperties指定的默认属性
(黑色加粗字体行为常用的配置方式)