优先级从高到低,高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置。

  1. 命令行参数。所有的配置都可以在命令行上进行指定。
  2. Java系统属性(System.getProperties());
  3. 操作系统环境变量;
  4. jar包外部的application-{profile}.properties或application-{profile}.yml(带spring.profile)配置的文件;
  5. jar包内部的application-{profile}.properties或application-{profile}.yml(带spring.profile)配置的文件;==先加载带profile的,再加载不带profile的==
  6. jar包外部的application.properties或application.yml(不带spring.profile)配置的文件;
  7. jar包内部的application.properties或application.yml(不带spring.profile)配置的文件;
  8. @Configuration注解类上的@PropertySource指定的资源文件;(因为是写死的,灵活性低,所以优先级最低)