SpringBoot也可以从以下位置加载顺序;优先级从高到低;高优先级的配置会覆盖低优先级的配置,所有的配置会形成互补配置.
- 命令行参数
java -jar [jar包名] --server.port=8088 --server.context.path=/abc
多个参数用空格隔开
- 来自java:comp/env的NDI属性
- java系统属性(System.getProperties())
- 操作系统环境变量
- RandomValuePropertySource配置的random.*属性值
由jar包外向jar包内进行寻找
优先加载带profile
- jar包外部的application-{profile}.properties或者application.yaml(带有spring.profile)配置文件
- jar包内部的application-{profile}.properties或者application.yaml(带有spring.profile)配置文件
然后加载不带profile
- jar包外部的application.properties或者application.yaml(不带spring.profile)配置文件
- jar包内部的application.properties或者application.yaml(不带spring.profile)配置文件
- @Configuration注解类上的@PropertySource
- 通过springApplication.setDefaultProperties指定的默认属性