SpringBoot原理-配置优先级(黑马学习笔记)

配置优先级

在我们前面的课程当中,我们已经讲解了SpringBoot项目当中支持的三类配置文件:

● application.properties

● application.yml

● application.yaml

在SpringBoot项目当中,我们要想配置一个属性,可以通过这三种方式当中的任意一种来配置都可以,那么如果项目中同时存在这三种配置文件,且都配置了同一个属性,如:Tomcat端口号,到底哪一份配置文件生效呢?

● application.properties

server.port=8081

● application.yml

server:port: 8082

● application.yaml

server:port: 8082

我们启动SpringBoot程序,测试下三个配置文件中哪个Tomcat端口号生效:

● properties,yaml,yml三种配置文件同时存在

properties、yaml、yml三种配置文件,优先级最高的是properties

● yaml、yml两种配置文件同时存在

配置文件优先级排名(从高到低):

    1.properties配置文件

    2.yml配置文件

    3.yaml配置文件

注意事项:虽然springboot支持多种格式配置文件,但是在项目开发时,推荐统一使用一种格式的配置。(yml是主流)

在SpringBoot项目当中除了以上3种配置文件外,SpringBoot为了增强程序的扩展性,除了支持配置文件的配置方式以外,还支持另外两种常见的配置方式:

    1.Java系统属性配置(格式:-Dkey=value)

-Dserver.port=9000

    2.命令行参数(格式:--key=value)

--server.port=10010

那在idea当中运行程序时,如何来指定Java系统属性和命令行参数呢?

● 编辑启动程序的配置信息

重启服务,同时配置Tomcat端口(三种配置文件、系统属性、命令行参数),测试哪个Tomcat端口号生效:

删除命令行参数配置,重启SpringBoot服务:

优先级:命令行参数>系统属性参数>properties>yml参数>yaml参数

思考:如果项目已经打包上线了,这个时候我们又如何来设置Java系统属性和命令行参数呢?

java -Dserver.port=9000 -jar XXXXX.jar --server.port=10010

下面我们来演示下打包程序运行时指定Java系统属性和命令行参数:

    1.执行maven打包指令package,把项目打成jar文件

    2.使用命令:java -jar方式运行jar文件程序

项目打包:

运行jar程序:

    ● 同时设置Java系统属性和命令行参数

    ● 仅设置Java系统属性

注意事项:

    ● SpringBoot项目进行打包时,需要引入插件spring-boot-maven-plugin(基于官网骨架创建项目,会自动添加该插件)

在SprinbgBoot项目当中,常见的属性配置方式有5种,3种配置文件,加上2种外部属性的配置(Java系统属性、命令行参数)。通过以上的测试,我们也得出了优先级(从低到高):

    ● application.yaml(忽略)

    ● application.yml

    ● application.properties

    ● java系统属性(-Dxxx=xxx)

    ● 命令行参数(--xxx=xxx)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/712918.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Liunx前后端项目部署(小白也可安装)

文章目录 一、CentOS服务器的安装二、jdk安装三、Tomcat安装四、MySQL安装、五、nginX安装六、多个项目负载均衡,部署后端项目七、前端项目部署 一、CentOS服务器的安装 选择liunx,下面选择CentOS 7 ![在这里插入图片描述](https://img-blog.csdnimg.cn…

oracle安装RAC手动配置互信

cd $ORACLE_HOME/sshsetup grid的话是GI_HOME(一个节点上跑即可) ./sshUserSetup.sh -user oracle -hosts "vma vmb" -advanced -noPromptPassphrase集群(oracle,grid都要做) node1: [oracle node1~]$ ssh-keygen -t rsa //…

一文讲透:可视化大屏中3D元素的融入和使用方法

在可视化大屏中,3D元素融入的越来越多,贝格前端工场经常接到这类项目,很多老铁认为加个3D效果很easy,其实不然,工序非常复杂,总结如下。 一、什么是3D技术 三维展示(3D展示)是指使用…

[BUUCTF]-Reverse:reverse3解析

查看ida 从下图的/3和*4可以推断得出来是base64加密。 ida里大致意思就是我们输入的字符串经过base64加密,循环递减,最后等于str2,那我们输入的字符串就是flag。 完整exp: import base64 liste3nifIH9b_CndH print(len(list))fl…

循环简介和基本运算符

根据C Primer Plus第五章进行学习 文章目录 循环简介基本运算符 1.赋值运算符&#xff1a;2.加法运算符&#xff1a;3.减法运算符&#xff1a;-2.乘法运算符&#xff1a;*总结 1.循环简介 如下代码可以体现不使用循环的局限性&#xff1a; #include<stdio.h> #define AD…

什么是端口,为什么要有端口

一.端口概念 在网络技术中&#xff0c;端口&#xff08;Port&#xff09;大致有两种意思&#xff1a;一是物理意义上的端口&#xff0c;比如&#xff0c;ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口&#xff0c;如RJ-45端口、SC端口等等。二是逻辑意义上的端…

【leetcode热题】杨辉三角 II

难度&#xff1a; 简单通过率&#xff1a; 41.1%题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目描述 给定一个非负索引 k&#xff0c;其中 k ≤ 33&#xff0c;返回杨辉三角的第 k 行。 在杨辉三角中&#xff0c;每个数是它左上方和右上方的数的和。 示…

Doris实战——金融壹账通指标中台的应用实践

目录 前言 一、业务痛点 二、早期架构挑战 三、架构升级 四、一体化指标数据平台 4.1 构建指标体系 4.2 构建指标平台功能 五、Doris指标应用实践 六、未来规划 原文大佬的这篇指标中台的应用实践有借鉴意义&#xff0c;这里摘抄下来用作学习和知识沉淀。 前言 在搭建…

linux学习-C语言流程控制

目录 顺序结构 分支结构 关系预算符 逻辑运算符 if分支 简单分支 阶梯分支 嵌套分支&#xff1a; switch分支 基本形式 switch嵌套 顺序结构 括号>单目运算符>双目运算符>三目运算符>赋值运算符>逗号运算符> 双目运算符&#xff1a;算数运算…

猎冰超前点播--大结局

第18集 链接&#xff1a;https://pan.baidu.com/s/1cHPiioQsQluWQQtP5CC_aA?pwdyyds 提取码&#xff1a;yyds --来自百度网盘超级会员V3的分享 第17集 链接&#xff1a;https://pan.baidu.com/s/1QQD5xX7U9t6W4-xcjVkQFg?pwdyyds 提取码&#xff1a;yyds --来自百度网…

知识积累(三):深度学习相关概念(查看检索时看到)

文章目录 1. 知识蒸馏2. 可微搜索索引&#xff08;DSI&#xff09;参考资料 在找论文时&#xff0c;发现的相关概念。 1. 知识蒸馏 知识蒸馏&#xff08;knowledge distillation&#xff09;是模型压缩的一种常用的方法&#xff0c;不同于模型压缩中的剪枝和量化&#xff0c;知…

蓝禾,三七互娱,顺丰,康冠科技,金证科技24春招内推

蓝禾&#xff0c;三七互娱&#xff0c;顺丰&#xff0c;康冠科技&#xff0c;金证科技24春招内推 ①蓝禾 【岗位】运营类、设计类、研发类&#xff0c;供应链类&#xff0c;职能等 【一键内推】https://lanhevip.jobs.feishu.cn/index/m/?external_referral_codeT1KYX4B 【校园…

MySQL之索引详解

华子目录 索引概述优缺点 索引的原理索引的设计原则索引结构B-tree&#xff08;多路平衡查找树&#xff09;BtreeHash 为什么InnoDB存储引擎选择Btree&#xff1f;索引分类聚集索引选取规则 单列索引和多列索引前缀索引创建索引1.创建表时创建索引2.在已经存在的表上创建索引3.…

微店商品详情 API 的调用频率有限制吗?

微店&#xff08;Weidian&#xff09;的商品详情 API的调用频率限制可能会因具体的 API 版本和商家的设置而有所不同。为了确保 API 的稳定性和公平使用&#xff0c;大多数 API 都会设置调用频率限制&#xff0c;通常这些限制是以每秒查询率&#xff08;QPS&#xff09;或每日请…

逆变器专题(16)-构网型逆变器与跟网型逆变器

相应仿真原件请移步资源下载 现如今&#xff0c;常规的逆变器控制方法主要分为跟网型以及构网型逆变器 跟网型逆变器即常规意义上的并网逆变器&#xff0c;即输出电流直接接入大电网&#xff0c;通常为电流源型逆变器&#xff0c;其输出电流的相位与频率时随着电网电压而随时进…

基于光流法以及背景减除法的降雪检测项目知识点总结

项目总结目录 一、算法部分1.光流法部分知识点2.python代码与大华摄像头之间的实时调用3.两个方法的代码 一、算法部分 1.光流法部分知识点 像素坐标系与直角坐标系之间的转换&#xff0c;之后计算角度。 其中光流法通过判断运动目标的角度来识别是否为降雪&#xff0c;通过…

我在使用 Copilot 时遇到了许可证验证错误。

如果使用的是 Copilot&#xff0c;并收到以下错误消息&#xff0c;请按以下步骤进行操作&#xff1a; We encountered a problem validating your Copilot license. For more information, see https://aka.ms/copilotlicensecheck 请确保使用的是正确的帐户 请确保已使用具…

神经网络系列---卷积

文章目录 卷积神经网络卷积转置卷积 卷积核和反卷积的三种实现方式卷积的次数计算 卷积神经网络 在神经网络的卷积层中&#xff0c;向下取整&#xff08;Floor&#xff09;是一种常用的策略&#xff0c;特别是在处理输出尺寸不是整数的情况时。当你计算出卷积层输出的尺寸&…

UnityAPI的学习——Mathf类

Mathf类是Unity中的数学类&#xff0c;属于结构体类型&#xff0c;只有静态属性和静态方法&#xff0c;即不可实例化。 Mathf类静态属性 在Mathf类中&#xff0c;涉及的静态属性有Deg2Rad、Rad2Deg和Infinity&#xff0c;其中属性Deg2Rad和Rad2Deg功能相似。 1、Deg2Rad属性…

UE5 C++ 发射子弹发射(Projectile)

一.相关蓝图的练习&#xff0c;在我之前的文章中射击子弹案例-CSDN博客 本篇使用C实现 1.创建C类 MyBullet,在MyBullet.h中包含相关头文件 #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "Components/StaticMeshComponent.…