SpringBoot配置文件加载顺序


spring配置文件加载顺序

1.application.properties加载

Spring Boot启动会扫描以下位置的application.properties或者application.yml文件作为Spring Boot的默认配置文件

bootstrap.yml(bootstrap.properties)与application.yml(application.properties)执行顺序

bootstrap优先级比application更高

application:配置文件这个容易理解,主要用于SpringBoot项目的自动化配置。

bootstrap:配置文件有以下几个应用场景 :

1. 使用SpringCloud Config配置中心时,这时需要在bootstrap配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;
2. 一些固定的不能被覆盖的属性;
3. 一些加密/解密的场景。

2.配置文件加载位置

1. file:/config/
2. file:/
3. classpath:/config/
4. classpath:/

springboot会加载所有的配置文件,并按优先级从上到下,将低优先级的配置内容覆盖 -- 高低级可以形成互补


3.外部配置文件

  1. 开发者工具 Devtools 全局配置参数;

  2. 单元测试上的 [@TestPropertySource](mailto:@TestPropertySource)` 注解指定的参数;

  3. 单元测试上的 [@SpringBootTest](mailto:@SpringBootTest)` 注解指定的参数;


  4. 命令行指定的参数,如 java -jar springboot.jar --name="xxx"

  5. 命令行中的 SPRING_APPLICATION_JSONJSON 指定参数, 如 java -Dspring.application.json='{"name":"xxx"}' -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 (mailto:@Configuration)配置文件上 @PropertySource(mailto:@PropertySource) 注解加载的参数;

  17. 默认参数(通过 SpringApplication.setDefaultProperties 指定);


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM