springboot加载bootstrap.yml和application.yml的区别

  • Post author:
  • Post category:其他


  • 功能上

    bootstrap.yml具有引导的功能,通常定义一些不变的系统性的配置。

    application.yml通常定义应用级别的配置,一些可变的内容,如果bootstrap.yml与application.yml具有相同的配置,那么application.yml会覆盖bootstrap.yml的配置。
  • 顺序上

    在同一目录下,bootstrap.yml会优先于application.yml加载,bootstrap.yml应用于上下文的引导阶段,它是由父ApplicationContext加载。

    记载顺序:bootstrap.yml > application.yml > application.properties.

    后加载的会覆盖之前加载的配置。


springboot加载配置顺序


1、开发者工具

Devtools

全局配置参数;

2、单元测试上的

@TestPropertySource

注解指定的参数;

3、单元测试上的

@SpringBootTest

注解指定的参数;

4、命令行指定的参数,如

java -jar springboot.jar --name="Java技术栈"

5、命令行中的

SPRING_APPLICATION_JSONJSON

指定参数, 如

java -Dspring.application.json='{"name":"Java技术栈"}' -jar springboot.jar

6、

ServletConfig

初始化参数;

7、

ServletContext

初始化参数;

8、JNDI参数(如

java:comp/env/spring.application.json

);

9、Java系统参数(来源:

System.getProperties()

);

10、操作系统环境变量参数;

11、

RandomValuePropertySource

随机数,仅匹配:

ramdom.*

12、JAR包外面的配置文件参数(

application-{profile}.properties(YAML)

13、JAR包里面的配置文件参数(

application-{profile}.properties(YAML)

14、JAR包外面的配置文件参数(

application.properties(YAML)

15、JAR包里面的配置文件参数(

application.properties(YAML)

16、

@Configuration

配置文件上

@PropertySource

注解加载的参数;

17、默认参数(通过

SpringApplication.setDefaultProperties

指定);



版权声明:本文为landaflame原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。