首页 > 其他分享 >SpringBoot配置文件的优先级

SpringBoot配置文件的优先级

时间:2022-10-10 17:12:08浏览次数:52  
标签:优先级 SpringBoot 配置文件 配置 jar application yml

配置文件优先级

(1)命令行参数;
(2)java:comp/env的JNDI属性(当前J2EE应用的环境);
(3)JAVA系统的环境属性;
(4)操作系统的环境变量;
(5)JAR包外部的application-xxx.properties或application-xxx.yml配置文件;
(6)JAR包内部的application-xxx.properties或application-xxx.yml配置文件;
(7)JAR包外部的application.properties或application.yml配置文件;
(8)JAR包内部的application.properties或application.yml配置文件;
(9)@Configuration注解类上的@PropertySource指定的配置文件;
(10)通过SpringApplication.setDefaultProperties 指定的默认属性;

项目外部配置文件

1. 命令行参数:

在命令行中通过 java -jar 命令启动项目时,可以使用连续的两个减号 -– 对配置文件中的属性值进行赋值,则命令行设置的属性会覆盖配置文件中属性的值。
java -jar xx.jar --server.port=8081 会覆盖配置文件中的端口。

2. 外置配置文件:

还可以指定配置文件的路径或者目录,则系统会使用指定的配置文件,或者目录下所有的配置文件。
java -jar xxx.jar --spring.config.location=/opt/servicex/config/application.yml
java -jar xxx.jar --spring.config.location=/opt/servicex/config/

项目内部配置文件

优先级低的配置会被先加载,所以优先级高的配置会覆盖优先级低的配置。

(1)在同一级目录下(除后缀外其他部分都相同)配置文件的优先级:properties(最高) > yml > yaml(最低)

(2)项目中优先级如下:

  • 项目名/config/XXX配置文件 (优先级最高)
  • 项目名/XXX配置文件
  • 项目名/src/main/resources/config/XXX配置文件
  • 项目名/src/main/resources/XXX配置文件 (优先级最低)

内外部优先级:

项目外部配置文件 > 项目内部配置文件

Bootstrap配置文件

加载顺序

  • bootstrap 由spring父上下文加载,比application配置文件优先加载,而application配置文件由子上下文加载
  • bootstrap加载的配置信息不能被application的相同配置覆盖

优先级

bootstrap 的加载优先于 applicaton,所以优先级从大到小如下:

bootstrap.properties > bootstrap.yml > application.properties > application.yml

配置区别

bootstrap常见应用场景:
(1)bootstrap配置文件中的配置一般是引导配置,类似于bios,用于连接到spring cloud配置中心,加载应用真正需要的配置数据,如:
spring.application.name 和 spring.cloud.config.server.git.uri

(2)配置一些固定的不能被覆盖的属性(默认情况下,本地的配置文件不能覆盖远程配置)

(3)配置加密解密外部配置信息的相关属性

application常见应用场景:spring boot项目的自动化配置

注意:在一些情况上不用区分这两个配置文件,只需使用application.yml即可,把全部配置信息都写在这里,效果基本是一致的。

标签:优先级,SpringBoot,配置文件,配置,jar,application,yml
From: https://www.cnblogs.com/zhaojinhui/p/16776406.html

相关文章

  • 一、读取配置文件low代码-16
    1、安装第三方扩展包MicrosoftWindows[版本10.0.19044.2006](c)MicrosoftCorporation。保留所有权利。C:\Users\jieqiong>pipinstallConfigparserCollecting......
  • 优先级排序为:算术运算符 > 关系运算符 > 赋值运算。
    优先级排序为:算术运算符>关系运算符>赋值运算。算术运算符中,-负数(如–1)、%百分比、^乘方、*和/(乘和除)、+和–(加和减)属于优先级第三级,加法运算符【+】、减法......
  • 上位笔记_03_ini配置文件读写(支持中文)
    下图所示内容根据不同设备会有不同内容,需要自定义,为了将该部分内容从代码中脱离采用ini配置的方式进行方便后续引用,将ini文件读写类放入工具类中集中存放。  在调节......
  • 5.9、ceph集群ceph.conf配置文件
    9.1config文件推送(1)默认生成的ceph.conf文件如果需要改动的话需要加一些参数,如果配置文件变化也是通过ceph-deploy进行推送。请不要直接修改某个节点的"/etc/ceph/ceph.......
  • SpringBoot Thymeleaf
    在SpringBoot【SSM+JSP篇】中使用了JSP来作为视图,需要我们自己将项目打成war包,并且部署到Tomcat上,随后项目才可以访问,觉得这有点麻烦,对于SpringBoot这个微服务框架来说,如果......
  • springboot注解大全
    1.@ConfigurationProperties与@EnableConfigurationProperties对比与区别  ......
  • SpringBoot+MyBatis Plus对Map中Date格式转换的处理
    在SpringBoot项目中,如何统一JSON格式化中的日期格式问题现在的关系型数据库例如PostgreSQL/MySQL,都已经对JSON类型提供相当丰富的功能,项目中对于不需要检索......
  • SpringBoot 整合邮件发送
    邮件发送更多参考:https://mrbird.cc/Spring-Boot-Email.html引入依赖在SpringBoot中发送邮件,需要用到spring-boot-starter-mail,引入spring-boot-starter-mail:<depend......
  • Java开发学习(三十七)----SpringBoot多环境配置及配置文件分类
    一、多环境配置在工作中,对于开发环境、测试环境、生产环境的配置肯定都不相同,比如我们开发阶段会在自己的电脑上安装mysql,连接自己电脑上的mysql即可,但是项目开发完毕......
  • springboot整合mybatisPlus
    引入场景启动器              ......