5.SpringBoot 配置文件

news2024/11/15 17:52:21

文章目录

  • 1.配置文件作用
  • 2.配置文件格式
    • 2.1项目中同时存在两种配置文件
    • 2.2application.properties
      • 2.2.1 application.properties语法格式
      • 2.2.2获取自定义配置项
    • 2.3 application.yml
      • 2.3.1 application.yml语法格式
        • 2.3.1.1单双引号区别
        • 2.3.1.2和application.properties格式对比:
        • 2.3.1.3 yml配置对象
        • 2.3.1.4 yml配置集合
        • 2.3.1.5yml配置map
      • 2.3.2获取自定义配置项key
      • 2.3.3获取多个自定义配置项
      • 2.3.4yml优缺点

大家好,我是晓星航。今天为大家带来的是 SpringBoot 配置文件 相关的讲解!😀

1.配置文件作用

1、数据库的连接信息(包含用户名和密码的设置)
2、项目的启动端口
3、第三方系统的调用密钥等信息
4、用于发现和定位问题的普通日志 和 异常日志 等。
5、还可以配置 日志的级别(规定只显示达到某个级别的日志),以及日志的持久化存储

2.配置文件格式

Spring Boot 配置文件有以下三种:

  • application.properties
  • application.yml
  • application.yaml

properties优先级>yml优先级>yaml优先级

2.1项目中同时存在两种配置文件

在企业中我们常用application.properties或application.yml。通常只使用一个文件。

一个项目中同时存在application.properties 和 application.yml,那么我们idea会遵循哪一个配置文件呢?

image-20240318154554415

application.properties:

image-20240318154842612

application.yml:

image-20240318154915715

idea运行结果:

image-20240318154931439

注意看此时端口号为9090,和我们application.properties中指定的端口号一样。

得出结论:

如果项目中,同时存在properties和yml配置文件,properties的优先级更高
同时存在时,两个文件都生效,如果两个文件中,都包含同一个配置,以properties为主

那么如果properties中无配置,yml中指定端口号配置会生效吗?

application.properties:

image-20240318155219299

application.yml:

image-20240318155246591

idea运行结果:

image-20240318155301137

可以发现当application.properties中无配置时,application.yml中的配置文件就会生效,他们的关系就和大当家与二当家一样,当大当家和二当家都有同一个命令时一定是听大当家的。但是大当家没有发号施令,而二当家发号施令了,此时大家就会听二当家的。

2.2application.properties

2.2.1 application.properties语法格式

image-20240318160100177

key value的形式,以 = 分割
key的格式建议小写,单词之间使用.分割

2.2.2获取自定义配置项

application.properties:

image-20240318161017893

PropertiesController.java:

image-20240318161103165

idea运行结果:

image-20240318161151732

去掉$符号之后,就相当于赋值了一个普通的字符串

image-20240318161309957

2.3 application.yml

2.3.1 application.yml语法格式

1、大小写敏感
2、使用缩进表示层级关系
3、禁止使用tab缩进,只能使用空格键
4、缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级。
5、使用#表示注释
6、字符串可以不用引号标注
7、: 冒号后面必须存在一个空格
8、null使用 ~ 来表示
9、空字符串 key后面直接空着就行,推荐用单引号或者双引号括起来

image-20240318163315874

2.3.1.1单双引号区别

image-20240318190155548

例如此处的 \n 单引号就没有换行,还是解析成了\n。而双引号就讲\n解析成了换行。

2.3.1.2和application.properties格式对比:

image-20240318161639353

注意:

image-20240318161713572

Value(值)前面的空格不可省!不然会导致编译无效

image-20240318161949478

image-20240318162005534

此时端口号还是8080

当我们在Value值前或冒号后加上 空格 之后,我们此时端口号是多少呢?

image-20240318162044632

image-20240318162138567

可以看到加上了空格之后,我们的端口号成功改为了9092

2.3.1.3 yml配置对象

image-20240318191914973

2.3.1.4 yml配置集合

配置内容:

image-20240318192037469

配置内容读取:

image-20240318192054986

image-20240318192104613

2.3.1.5yml配置map

DBType.java:

image-20240318192503723

application.yml:

image-20240318192521834

idea运行输出结果:

image-20240318192539534

2.3.2获取自定义配置项key

application.yml:

image-20240318164312238

application.yml:

image-20240318164241452

idea运行结果:

image-20240318164210023

2.3.3获取多个自定义配置项

我们此处传多个key值

image-20240318164943260

这里我们使用到了 @PostConstruct 这个注解,这个注解主要是用来初始化配置的一个注解方法

image-20240318165036706

注:此时key3是整型类型,我们此处没有报错,因为我们传入的值确实是1024 - 一个整型。 如果我们类型不对等的话一定会发生报错的

idea运行结果:

image-20240318165237918

可以看到此时初始化的值已经打印在idea上,且端口还是8080.

2.3.4yml优缺点

优点:

  1. 可读性高,写法简单,易于理解
  2. 支持更多的数据类型,可以简单表达对象,数组,List,Map等数据形态,
  3. 支持更多的编程语言,不止是]ava中可以使用,在Golang,Python,Ruby, JavaScript中也可以使用

缺点:

  1. 不适合写复杂的配置文件
  2. 对格式有较强的要求(一个空格可能引发一场血案)

3.验证码案例

image-20240318202825569

image-20240318202830405

  1. 不适合写复杂的配置文件
  2. 对格式有较强的要求(一个空格可能引发一场血案)

感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!😘

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

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

相关文章

安全狗云眼的主要功能有哪些?

"安全狗云眼"是一款综合性的网络安全产品,主要用于实时监控和保护企业的网络安全。其核心功能包括威胁检测、漏洞扫描、日志管理和合规性检查等。 以下是安全狗云眼的主要功能详细介绍: 1、资产管理 定期获取并记录主机上的Web站点、Web容器、…

Python连接Oracle数据库问题解决及Linux服务器操作知识

背景说明 最近在做一个视频分析的项目,然后需要将视频分析的数据写入到oracle数据库,直接在服务器上测试数据库连接的时候出现了这个bug提示,自己通过不断的研究探讨,最终把这个问题成功进行了解决,在这里进行一下记录…

【周总结】总结下这周的工作、(hashmap)知识巩固等

总结 这周开发任务已经全部结束,主要是在修改一些 jira 问题 需要反思的是,中间改造接口时,数据库表需要新增一个字段,这个 sql 脚本忘记加到 basetable.sql 脚本里面了,这样如果是新建的项目,创建的时候不…

HackMyVM-Hommie

目录 信息收集 arp nmap WEB web信息收集 dirsearch ftp tftp ssh连接 提权 系统信息收集 ssh提权 信息收集 arp ┌──(root㉿0x00)-[~/HackMyVM] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 08:00:27:77:ed:84, IPv4: 192.168.9.126 Starting arp-…

常见的经典目标检测算法

目标检测是计算机视觉领域的一个核心任务,它涉及到识别图像中的物体并确定它们的位置。以下是一些常见的经典目标检测算法: R-CNN系列 R-CNN(Region-based Convolutional Neural Network)是一种用于目标检测的算法,它…

未知个数一维数组:申请资源、初始化、访问、释放资源

示例&#xff1a; /*** brief how about array-unknown-count? show you here.* author wenxuanpei* email 15873152445163.com(query for any question here)*/ #define _CRT_SECURE_NO_WARNINGS//support c-library in Microsoft-Visual-Studio #include <stdio.h>…

Git | Git基本命令

Git | Git基本操作 文章目录 Git | Git基本操作一、创建Git本地仓库1、创建Git仓库2、配置Git3、理解工作区、暂存区、版本库关系 二、添加、修改与查看添加文件查看历史提交记录 修改文件查看.git文件 三、版本回退版本回退撤销修改尚未add已add但还未commit已add并commit 删除…

项目小游戏-贪吃蛇

目录 1.游戏开始 - GameStart 1.1cmd命令窗口 调节窗口命令 ​编辑更改窗口命名 ​编辑 1.2 Win32 API win32 API 的介绍: ​编辑 获取控制台坐标COORD 获取控制台句柄: 获取缓冲台光标信息: 获取虚拟键位: 本地初始化 setlocale(); 游戏开始的具体实现&#xff1a…

uniapp中scroll-view初始化的时候 无法横向滚动到某个为止

项目需求 实现日历&#xff08;13天&#xff09;默认高亮第六天 并定位到第六 左边右边各六天&#xff08;可以滑动&#xff09; 直接上代码 <template><scroll-view class"scroll-X":show-scrollbar"true" :scroll-x"scrollable":…

理解这几个安全漏洞,你也能做安全测试!

如今安全问题显得越来越重要&#xff0c;一个大型的互联网站点&#xff0c;你如果每天查看日志&#xff0c;会发现有很多尝试攻击性的脚本。 如果没有&#xff0c;证明网站影响力还不够大。信息一体化的背后深藏着各类安全隐患&#xff0c;例如由于开发人员的不严谨导致为Web应…

八字入门书介绍

《千里命稿》&#xff0c;此书是民国时期上海的韦千里先生所著&#xff0c;是他主讲的命学培训班的讲义&#xff0c;成书时间在1935年。该书语言简练、述理清晰&#xff0c;是讲述子平命学概念的佼佼者&#xff0c;尤其是对五行、六神的性质讲解&#xff0c;可以说是此书的精华…

xpath的使用以及原理-元素定位

# 查找文本框输入文本 driver.find_element(By.CLASS_NAME,"nav-search-input").send_keys("i_cecream查找到了") #查找到之后点击 driver.find_element(By.CLASS_NAME,"nav-search-btn").click()time.sleep(30)selenium4的解析。 client调用se…

Elasticsearch进阶篇(三):ik分词器的使用与项目应用

ik分词器的使用 一、下载并安装1.1 已有作者编译后的包文件1.2 只有源代码的版本1.3 安装ik分词插件 二、ik分词器的模式2.1 ik_smart演示2.2 ik_max_word演示2.3 standard演示 三、ik分词器在项目中的使用四、ik配置文件4.1 配置文件的说明4.2 自定义词库 五、参考链接 一、下…

动态内存的管理

1.为什么要有动态数组呢 int val 20;//在栈空间上开辟四个字节 char arr[10] {0};//在栈空间上开辟10个字节的连续空间 上述开辟空间的方式有两个特点&#xff1a; 空间开辟大小是固定的数组在申明的时候&#xff0c;必须指定数组的长度&#xff0c;数组空间一旦确定了大小…

【AI自媒体制作】【AI工具】天工AI

链接&#xff1a;天工AI 目前chatgpt3.5已经免费&#xff0c;很多AI平台都可以进行一定层度的白嫖&#xff0c;对于个人开发者是一件好事&#xff0c;有些会员就没必要充值了。 天工AI是比较常见的AI工具了&#xff0c;可以识别图片、智能问答、生成图片等。当然对于一个程序员…

关于电商独立站搭建中电商API数据采集接口的应用

搭建供应链系统时&#xff0c;您可能需要与电商平台进行集成&#xff0c;以实现订单管理、库存同步、物流跟踪等功能。以下是一些常见的电商接口&#xff0c;可以帮助您构建供应链系统&#xff1a; 1. **淘宝开放平台接口**&#xff1a;淘宝开放平台提供了丰富的接口&#xff…

上位机图像处理和嵌入式模块部署(树莓派4b和驱动的编写)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 树莓派4b上面还支持驱动代码的编写&#xff0c;这是我没有想到的。这里驱动&#xff0c;更多的是一种框架的编写&#xff0c;不一定是编写真正的驱…

Selenium web自动化测试环境搭建

Selenium web自动化环境搭建主要要经历以下几个步骤&#xff1a; 1、安装python 在python官网&#xff1a;Welcome to Python.org&#xff0c;根据各自对应平台如&#xff1a;windows&#xff0c;下载相应的python版本。 ​ 下载成功后&#xff0c;点击安装包&#xff0c;一直…

排序之插入排序:从斗地主到插入排序

目录 1.斗地主如何摸牌 2.从摸牌想到插入排序 3.完成插入排序 4.结束语 1.斗地主如何摸牌 不知道各位是否玩过几乎人人都玩过的斗地主游戏呢&#xff1f;相必各位或多或少都玩过一点&#xff0c;再没玩过也看别人打过。今天博主就将从这个游戏为大家讲解我们的插入排序。 在…

shell编写

运算符 echo 打印 unset 删除 [ boolean表达式 ] 注意中括号中有两个空格&#xff0c;两个空格中添加表达式 0为true 1为false $?查看结果 -ge 大于等于 lt小于 le小于等于 eq等于 ne不等于 格式& | [ 表达式 ] -o是或者or的意思 -a是and的意思 &#xff01…