SpringBoot配置文件的优先级
配置文件优先级
(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配置文件的优先级的更多相关文章
- springboot 配置文件的优先级和互补配置
一.springboot启动时候,配置文件的优先级如下所示由高到低.高优先级会覆盖低优先级相同配置,并且和低优先级形成互补配置. –file:./config/ ###根目录config目录下 –fi ...
- SpringBoot 配置文件存放位置及读取顺序
SpringBoot配置文件可以使用yml格式和properties格式 分别的默认命名为:application.yml.application.properties 存放目录 SpringBoot ...
- SpringBoot——配置文件加载位置及外部配置加载顺序
声明 本文部分转自:SpringBoot配置文件加载位置与优先级 正文 1. 项目内部配置文件 spring boot 启动会扫描以下位置的application.properties或者applic ...
- 【SpringBoot】SpringBoot配置文件及YAML简介(三)
SpringBoot配置文件 SpringBoot使用一个全局的配置文件,配置文件名是固定的; application.properties application.yml 配置文件的作用:修改Spr ...
- springboot配置文件之yml的语法学习
springboot配置文件(.yml/.yaml.properties) YAML(YAML Ain't Markup Language) YAML A Markup Language:是一个标记语 ...
- springboot 配置文件的加载顺序
springboot 配置文件的加载顺序1.在命令行中传入的参数.2. SPRING APPLICATION JSON中的属性. SPRING_APPLICATION—JSON是以JSON格式配置在系 ...
- SpringBoot学习笔记(三)——Springboot配置文件
SpringBoot不像之前用spring+springMVC做项目的时候,他不需要配置大量的看上去很乱很复杂的xml配置文件.在SpringBoot中你可以通过java代码和注解配置项目,也可以通过 ...
- SpringBoot配置文件(2)
六.配置文件加载 SpringBoot 启动会扫描以下位置的application.properties或者application.yml文件作为SpringBoot的默认配置文件 file:./co ...
- SpringBoot配置文件 application.properties,yaml配置
SpringBoot配置文件 application.properties,yaml配置 1.Spring Boot 的配置文件 application.properties 1.1 位置问题 1.2 ...
- SpringBoot配置文件-多环境切换
profile是Spring对不同环境提供不同配置功能的支持,可以通过激活不同的环境版本,实现快速切换环境: 多个文件-配置多环境: 需要多个配置文件,文件名可以是 application-{prof ...
随机推荐
- ansible系列(23)--ansible的when控制语句
目录 1 when控制语句 1.1 根据不同操作系统安装相同的软件 1.2 为不同centos版本安装httpd软件 1.3 为特定的主机添加Nginx仓库 1.4 判断服务是否正常运行 1 when ...
- python教程3.3:字符和编码
1.二进制 计算机只能存储和识别二进制,但是人类常用的字母.数字.汉字怎么用计算机存储和识别呢? 人类强行约定一个对应表,把数字.字母和数字进行对应上,这样就可以用二进制表示字母和数字了. 2.ASC ...
- 在tomcat上安装PFX格式证书部署https
您可以在Tomcat服务器安装已签发的SSL证书,实现通过HTTPS安全访问Web服务.本文介绍如何在Tomcat服务器安装PFX格式的SSL证书. 步骤一:在阿里云的域名管理后台,下载SSL证书 登 ...
- Clip-跳过
在 Stable Diffusion 1.x 模型中,CLIP 用作文本嵌入.CLIP模型由多层组成.他们一层一层地变得更加具体.过于简单化,第一层可以理解"人",第二层可以区分& ...
- 鸿蒙HarmonyOS实战-Stage模型(AbilityStage组件容器)
前言 组件容器是一种用于管理和组织组件的工具或环境.它可以提供一些基本的功能,如组件的注册.创建.销毁和查找.组件容器通常会维护一个组件的依赖关系,并负责将这些依赖注入到组件中.它还可以提供一些其他的 ...
- C# Linq、Lambda表达式树动态构建、合并条件扩展方法
前言 日常开发时,使用Linq和EF经常会在存在多条件查询,或者说动态条件查询时,便存在合并表达式树的情况.基于这种情况结合一些资料,写了个扩展类,代码如下: 代码实现 /// <summary ...
- Visual Studio之中文智能提示(IntelliSense本地化)
要设置中文智能提示,我们就得先了解下IntelliSense. IntelliSense 是一种代码完成辅助工具,可以在不同的集成开发环境 (IDE) 中使用,例如 Visual Studio. 默认 ...
- 【asp.net】滑块验证码(分享一个从github上下载的源码)
思路: 1. 准备好10张或20张不同规格的图片,按规格分类到不同文件夹,每个文件夹的图片从1开始顺序递增命名,为了随机选择图片. 2.前端提交规格比如200*300,根据规格选择原图,并初始化 ...
- 深入探讨Function Calling:实现外部函数调用的工作原理
引言 Function Calling 是一个允许大型语言模型(如 GPT)在生成文本的过程中调用外部函数或服务的功能. Function Calling允许我们以 JSON 格式向 LLM 模型描述 ...
- cmake之find_library使用问题
附上工程源码 demo工程 PS:这个工程用于导出库 CMakeLists.txt cmake_minimum_required(VERSION 3.5) project(demo LANGUAGES ...