5.SpringBoot 配置文件

文章目录

  • 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.hqwc.cn/news/636976.html

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

相关文章

在Postgres中,如何有效地管理大型数据库的大小和增长

文章目录 一、定期清理和维护1. VACUUM和ANALYZE2. 删除旧数据和归档 二、分区表三、压缩数据四、配置优化1. 调整维护工作负载2. 监控和日志 五、使用外部存储和扩展1. 外部表和FDW2. 扩展和插件 六、定期备份和恢复测试结论 管理大型数据库的大小和增长是数据库管理员&#x…

NIMAX下载安装使用,pyvisa基本使用

NIMAX部分: 1、先在NI官网下载系统配置和NI-VISA: 系统配置: https://www.ni.com/zh-cn/support/downloads/drivers/download.system-configuration.html#532687https://www.ni.com/zh-cn/support/downloads/drivers/download.system-conf…

基于springboot+vue+Mysql的社区维修平台

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

C++中的继承与多态

一、继承: 1.什么是继承? 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象…

记录:阿里云服务器网站搭建(2)

Docker安装Mysql mysql版本 查看开发环境中mysql版本 :select version();安装时版本尽量保证一致,最低要求大版本要一致 docker 拉取mysql镜像 docker pull mysql:8.0.36 docker启动mysql容器 docker run -d \ # 创建并运行一个容器&…

【Godot4.2】太极八卦图绘制

概述 作为中国传统文化符号之一,太极八卦图,无论是哲学还是玄学,都不可能避开。 之前在ShapePoints函数库实现了太极的点求取函数。当时采用的时圆弧拼接的方式,但是存在某些尺寸下多边形无法三角化的问题。 于是就有了今天的内…

Windows使用freeSSHd搭建sftp服务器

一、安装 1、运行freeSSHd.exe(最好以管理员方式运行) 2、选择安装位置 3、选择全部安装 4、是否创建开始启动栏快捷入口 5、是否创建桌面快捷方式 6、安装 7、安装完成,点击close 8、安装私钥 9、是否要安装为服务 10、全部安装完成 二、配…

不同条件累加(C语言)

一、题目&#xff1b; 二、N-S流程图&#xff1b; 三、运行结果&#xff1b; 四、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int i 0;int j 0;float result1 0;float result2 0;float result…

3、MATLAB中矩阵和多维矩阵介绍

文章目录 一、矩阵二、矩阵举例三、定义变量四、定义矩阵五、获取变量值 一、矩阵 MATLAB中数据的基本格式是矩阵&#xff1b; 二维矩阵是一个带有以行和列排列的元素的矩阵表&#xff1b;如果右m行、n列&#xff0c;这个矩阵的大小就是m x n&#xff1b;多维矩阵的维数大于2…

加速产能!推荐五款制造业项目管理软件

随着技术的不断发展&#xff0c;许多制造企业开始意识到使用制造业项目管理软件的重要性。在本文中&#xff0c;我们将探讨适用于制造业的项目管理软件&#xff0c;制造业项目管理软件推荐&#xff0c;以帮助项目团队更加高效管理资源。 制造业项目管理难题 怎样正确利用工作资…

JAVA学习笔记28(常用类)

1.常用类 1.1 包装类 1.包装类的分类 ​ 1.针对八中基本数据类型相应的引用类型–包装类 ​ 2.有了类的特点&#xff0c;就可以调用类中的方法 2.包装类和基本数据类型的转换 ​ *装箱&#xff1a;基本类型 --> 包装类型 //手动装箱 int n1 100; Integer integer ne…

如何在3dMax中快速打包mzp 文件?

如何在3dMax中创建mzp 文件&#xff1f; 我喜欢将我的Maxscript脚本发布为mzp文件。这是一个为3dMax构建的自解压zip文件。在mzp文件中&#xff0c;您可以捆绑Maxscript脚本文件、图片、预设或其他文件&#xff0c;并链接安装时执行的特殊操作。 在3dMax中使用大型脚本时&…