Springboot的配置文件及其优先级

配置文件

内置配置文件

配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;SpringBoot使用一个全局的配置文件,配置文件名是固定的:

  • application.properties
  • application.yml

以上两个任意一个都可以,也可以组合起来使用

  • 以前的配置文件:大多都使用的是 xxxx.xml文件;
  • YAML:以数据为中心,比json、xml等更适合做配置文件;

yml与properties的比较

application.properties与application.yml的比较
![[Pasted image 20240127193316.png]]

我们会发现properties文件如果是要配置同一层级下的属性需要把它的前缀全部写上,而yml文件则是跟文件的层级结构相似,而且分层清晰,所有我们一般选择使用yml文件。

优先级比较

虽然说application.yml与application.properties都是springboot的配置文件,但是他们也存在一个优先级:properties的优先级高于yml文件。
接下来就是验证这个优先级 :
首先给yml和properties文件设置不同的port,然后启动项目
![[Pasted image 20240313090655.png]]

项目启动之后,我们从日志中可以看到端口号时8081,时properties文件中配置的,因此验证了properties文件的优先级。
![[Pasted image 20240313090907.png]]

外置配置文件

首先,再我们的项目中我们导入了一个插件,可以将应用打包成一个可执行的jar包,无论在哪都可以使用java -jar进行运行。因此我们可以把打包好的jar包拿出来,放到一个文件夹中,然后去验证其外置的配置文件。
插件如下:
![[Pasted image 20240313091152.png]]

打包的时候我们先需要依次运行clean和package指令。
![[Pasted image 20240313091447.png]]

打包完成之后我们可以进入到项目对应的target文件夹下边,结构如下:
![[Pasted image 20240313091738.png]]

我们可以把jar包复制一份,然后放到一个新的文件夹中,并在文件夹中新建一个application.yml文件,重新制定port为8085,然后使用java -jar运行程序。
![[Pasted image 20240313091945.png]]

java -jar redisdemo-0.0.1-SNAPSHOT.jar

![[Pasted image 20240313092133.png]]

然后我们在当前目录下新建一个config文件,config文件中新建一个application.yml文件,并设置port为8090,然后再次启动项目,我们会发现端口号变成了8090。

因此我们得到一个优先级的比较:
外置的config中的配置文件>外置的配置文件>内置的application.properties>内置application.yml

springboot读取配置文件

我们也可以在配置文件中自定义属性的值,然后可以使用@Value来读取,例如:
在yml文件中添加:

api:name: zhangsanpassword: 123456

新建ConfigController文件:

package com.example.redisdemo.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class ConfigController {// :后边的是默认值,如果找不到api.name就使用1,并且不会抛出异常@Value("${api.name:1}")private String name;@Value("${api.password:2}")private String password;@GetMapping("/config")public void config(){System.out.println(name);System.out.println(password);}
}

然后启动项目,访问config进行验证:
![[Pasted image 20240313093149.png]]

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

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

相关文章

Prompt Learning:人工智能的新篇章

开篇:AI的进化之旅 想象一下,你正在和一位智能助手对话,它不仅理解你的问题,还能提出引导性的问题帮助你更深入地思考。这正是prompt learning的魔力所在——它让机器学习模型变得更加智能和互动。在这篇博客中,我们将…

[论文精读]Dynamic Coarse-to-Fine Learning for Oriented Tiny Object Detection

论文网址:[2304.08876] 用于定向微小目标检测的动态粗到细学习 (arxiv.org) 论文代码:https://github.com/ChaselTsui/mmrotate-dcfl 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&…

【ARM】MDK在programming algorithm界面添加FLM

【更多软件使用问题请点击亿道电子官方网站查询】 1、 文档目标 解决在programming algorithm界面中无法添加想要的Flash编程算法的问题 2、 问题场景 在对于Debug进行Flash Download进行配置的时候,在programming algorithm界面中有对应的Flash编程算法。可以通过…

如何使用vue定义组件之——子组件调用父组件数据

1.定义父子模板template <div class"container"><my-father></my-father><my-father></my-father><my-father></my-father><!-- 此处无法调用子组件&#xff0c;子组件必须依赖于父组件进行展示 --><!-- <my-…

内存操作函数

memcpy mem--memory--内存 指向计算机内存 cpy-copy-拷贝 也就是内存拷贝 针对内存的函数 void* memcpy(void * destination,const void * source,size_t num) 把source的空间 复制到 destination的部分 长度是num 如果source 和 dest 的部分有重叠,会复制的结果是未定义的(建…

SpringBoot集成netty实现websocket通信

实现推送消息给指定的用户 一、依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://m…

蓝桥杯 2022 dp 背包

蓝桥杯 2022 dp 背包 题目链接&#xff1a; https://www.lanqiao.cn/problems/2186/learning/?subject_code1&group_code4&match_num13&match_flow2&origincup 题目&#xff1a; 代码&#xff1a; #include<bits/stdc.h> using namespace std;#defi…

Docker拉取镜像存储不足

在使用Docker时&#xff0c;我们经常遇到一个问题&#xff0c;就是拉取镜像时提示存储空间不足。这是因为Docker在拉取镜像时需要将镜像文件下载到本地存储中&#xff0c;而有时本地存储空间不足以容纳完整的镜像文件。 本文将介绍一些解决这个问题的方法&#xff0c;并提供相…

这个学习Python的神仙网站,后悔没早点发现

Python 作为时下最流行的编程语言&#xff0c;很多初学者都将它作为自学编程的首选。不管是有编程经验的开发者&#xff0c;还是新手小白&#xff0c;在这个 AIGC 时代&#xff0c; Python 都可以带你探索新世界。 入门 Python 绝非难事&#xff0c;但如何让自己坚持学下去是如…

AI日报:一个新的“科技超级周期”正在出现

文章目录 技术周期预测可连接设备 技术周期 未来学家艾米韦伯表示&#xff0c;人工智能和其他两种通用技术将迎来一个新的“技术超级周期”&#xff0c;预计将在经济中创造“实质性和持续性”的变化。 她在SXSW 2024上表示&#xff0c;过去的科技超级周期是由通用技术引发的&…

【python】anaconda安装过程

【运行环境】Windows11 文章目录 一、anaconda下载二、anaconda安装三、环境变量配置四、测试环境变量是否配置成功五、总结 一、anaconda下载 1、输入网址“https://www.anaconda.com”进入Anaconda官网。 2、找到【Free Download】点击进入&#xff1a; 3、点击对应系统的…

YOLOv5目标检测学习(5):源码解析之:推理部分dectet.py

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、导入相关包与路径、模块配置1.1 导入相关的python包1.2 获取当前文件的相对路径1.3 加载自定义模块1.4 总结 二、执行主体的main函数所以执行推理代码&…

Acwing.4261 孤独的照片(贡献法)

题目 Farmer John 最近购入了 N 头新的奶牛&#xff0c;每头奶牛的品种是更赛牛&#xff08;Guernsey&#xff09;或荷斯坦牛&#xff08;Holstein&#xff09;之一。 奶牛目前排成一排&#xff0c;Farmer John 想要为每个连续不少于三头奶牛的序列拍摄一张照片。 然而&…

web:shrine

题目 点进题目后显示如下 查看源代码&#xff0c;查看可知为ssti注入。还设置了过滤的名单。 先可以测试一下是否存在ssti模板注入 payload \shrine\{{2-2}} 回显成功&#xff0c;存在ssti模板注入 绕过思路&#xff0c;代码里有过滤&#xff0c;会把()替换&#xff0c;这里…

C# Onnx C2PNet 图像去雾 室外场景

目录 介绍 效果 模型信息 项目 代码 下载 C# Onnx C2PNet 图像去雾 室外场景 介绍 github地址&#xff1a;https://github.com/YuZheng9/C2PNet [CVPR 2023] Curricular Contrastive Regularization for Physics-aware Single Image Dehazing 效果 模型信息 Model P…

【机器人控制 Robot Control】非线性控制(Non-linear Control)建模举例【新加坡南洋理工大学 NTU Singapore】

Non-linear Control Method Example: Non-linear Mechanical System Modelling of the System using Control Law Partitioning (Handwritten)

掌控无显示器Linux开发板:VNC远程桌面接入指南

掌控无显示器Linux开发板&#xff1a;VNC远程桌面接入指南 Linux开发板是许多技术人员常用的工具&#xff0c;但有时它们并不配备显示器。这时&#xff0c;VNC&#xff08;Virtual Network Console&#xff09;软件就成为了一个非常有用的工具&#xff0c;它允许用户通过网络远…

第13届软件与计算技术国际会议(ICSCT 2024)即将召开!

2024年第13届软件与计算技术国际会议(ICSCT 2024)将于7月26-28日在越南岘港召开。本次大会由维新大学主办&#xff0c;岘港大学、胡志明市科技大学联合协办。ICSCT 2024旨在为来自业界和学术界的研究人员、学者和专业人士提供一个论坛&#xff0c;分享他们最新的研究成果。欢迎…

滴滴 Flink 指标系统的架构设计与实践

毫不夸张地说&#xff0c;Flink 指标是洞察 Flink 任务健康状况的关键工具&#xff0c;它们如同 Flink 任务的眼睛一般至关重要。简而言之&#xff0c;这些指标可以被理解为滴滴数据开发平台实时运维系统的数据图谱。在实时计算领域&#xff0c;Flink 指标扮演着举足轻重的角色…

【包邮送书】Elasticsearch 通过索引阻塞实现数据保护深入解析

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…