配置文件优先级

(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(最低)

相同后缀配置文件的优先级:application-xxx.yml > application.yml

2. 项目中优先级

  • 项目名/config/xxx.xml (优先级最高)
  • 项目名/xxx.xml
  • 项目名/src/main/resources/config/xxx.properties
  • 项目名/src/main/resources/xxx.yml (优先级最低)

内外部优先级:

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

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配置文件的优先级的更多相关文章

  1. springboot 配置文件的优先级和互补配置

    一.springboot启动时候,配置文件的优先级如下所示由高到低.高优先级会覆盖低优先级相同配置,并且和低优先级形成互补配置. –file:./config/ ###根目录config目录下 –fi ...

  2. SpringBoot 配置文件存放位置及读取顺序

    SpringBoot配置文件可以使用yml格式和properties格式 分别的默认命名为:application.yml.application.properties 存放目录 SpringBoot ...

  3. SpringBoot——配置文件加载位置及外部配置加载顺序

    声明 本文部分转自:SpringBoot配置文件加载位置与优先级 正文 1. 项目内部配置文件 spring boot 启动会扫描以下位置的application.properties或者applic ...

  4. 【SpringBoot】SpringBoot配置文件及YAML简介(三)

    SpringBoot配置文件 SpringBoot使用一个全局的配置文件,配置文件名是固定的; application.properties application.yml 配置文件的作用:修改Spr ...

  5. springboot配置文件之yml的语法学习

    springboot配置文件(.yml/.yaml.properties) YAML(YAML Ain't Markup Language) YAML A Markup Language:是一个标记语 ...

  6. springboot 配置文件的加载顺序

    springboot 配置文件的加载顺序1.在命令行中传入的参数.2. SPRING APPLICATION JSON中的属性. SPRING_APPLICATION—JSON是以JSON格式配置在系 ...

  7. SpringBoot学习笔记(三)——Springboot配置文件

    SpringBoot不像之前用spring+springMVC做项目的时候,他不需要配置大量的看上去很乱很复杂的xml配置文件.在SpringBoot中你可以通过java代码和注解配置项目,也可以通过 ...

  8. SpringBoot配置文件(2)

    六.配置文件加载 SpringBoot 启动会扫描以下位置的application.properties或者application.yml文件作为SpringBoot的默认配置文件 file:./co ...

  9. SpringBoot配置文件 application.properties,yaml配置

    SpringBoot配置文件 application.properties,yaml配置 1.Spring Boot 的配置文件 application.properties 1.1 位置问题 1.2 ...

  10. SpringBoot配置文件-多环境切换

    profile是Spring对不同环境提供不同配置功能的支持,可以通过激活不同的环境版本,实现快速切换环境: 多个文件-配置多环境: 需要多个配置文件,文件名可以是 application-{prof ...

随机推荐

  1. apisix~jwt-auth插件

    在网关开启jwt-auth插件之后,你的网关就具有了jwt解析和校验的功能,主要是校验jwt token的有效性,包含过期时间和签名等. https://apisix.apache.org/docs/ ...

  2. Spring6 的JdbcTemplate的JDBC模板类的详细使用说明

    1. Spring6 的JdbcTemplate的JDBC模板类的详细使用说明 @ 目录 1. Spring6 的JdbcTemplate的JDBC模板类的详细使用说明 每博一文案 2. 环境准备 3 ...

  3. 环境声音分类的深度 CNN 模型

    具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI 声音事件的分类精度与特征提取有很强的关系.本文将深度特征用于环境声音分类(ESC)问题.深层特征是通过使 ...

  4. k8s多集群切换:使用kubeconfig文件管理多套kubernetes(k8s)集群

    目录 一.系统环境 二.前言 三.kubeconfig文件 四.kubernetes(k8s)多集群切换 一.系统环境 服务器版本 docker软件版本 CPU架构 CentOS Linux rele ...

  5. AIRIOT智慧变电站管理解决方案

    随着社会电气化进程的加速,电力需求与日俱增,变电站作为电网的关键节点,其稳定性和智能化管理水平直接关系到整个电力系统的高效运作.传统变电站管理平台难以适应现代电力系统复杂管理需求,存在如下痛点: 数据 ...

  6. skipped: maximum number of running instances reached (1)

    apscheduler定时任务报错skipped: maximum number of running instances reached (1) 原因是默认max_instances最大定时任务是1 ...

  7. Swoole 源码分析之 epoll 多路复用模块

    首发原文链接:Swoole 源码分析之 Http Server 模块 大家好,我是码农先森. 引言 在传统的IO模型中,每个IO操作都需要创建一个单独的线程或进程来处理,这样的操作会导致系统资源的大量 ...

  8. PHP 中使用 ElasticSearch 的最佳实践 (下)

    引言 上一篇文章,我们使用同步的方式将数据,同步写入到 ElasticSearch 中.接下来的这篇文章,主要介绍使用 RabbitMQ 的方式,异步的将数据同步到 ElasticSearch . 部 ...

  9. mediaserverd

    1.mediaserverd是什么 mediaserverd(/usr/sbin/mediaserverd)是被root进程launchd启动的一个后台(daemon)进程,其描述文件为com.app ...

  10. Windows10 LTSC版,比Win7还干净

    在Windows操作系统的发展历程中,每一个版本都承载着微软对用户需求的深度理解和技术创新.其中,Windows 7以其稳定.高效和简洁的特点,赢得了众多用户的喜爱. 然而,随着技术的不断进步和用户需 ...