SpringBoot 配置文件:什么时配置文件?配置文件能干什么?

文章目录

  • 🎇前言
  • 1.配置文件的格式
  • 2. properties配置文件说明
    • 2.1 properties基本语法
    • 2.2 读取配置文件
  • 3. yml 配置文件说明
    • 3.1 yml 基本语法
  • 4.properties与yml 对比

在这里插入图片描述

🎇前言

学习一个东西,我们先要知道它有什么用处。整个项目中所有重要的数据都在配置文件中配置,例如:数据库的连接信息、项目启动窗口、第三方系统调用密钥、日志等级…,如果没有配置信息,那么 SpringBoot 项目就无法连接数据库,不能保存关键日志,因此,在项目中,配置文件的作用是及其重要的。

1.配置文件的格式

配置文件有两种格式:.properties.yml(.yaml)
在这里插入图片描述
他两个的关系就像是饭店里面出的新品和旧品的区别,.properties是旧品,.yml是新品。

注意:

  • 理论上讲 properties 可以和 yml ⼀起存在于⼀个项目当中,当propertiesyml ⼀起存在⼀个项目中时,如果配置⽂件中出现了同样的配置,比如 propertiesyml 中都配置了“server.port”,那么这个时候会以 properties 中的配置为主,也就是 .properties 配置⽂件的优先级高,但加载完 .properties ⽂件之后,也会加载 .yml ⽂件的配置信息。
  • 虽然理论上来讲 .properties 可以和 .yml 共存,但实际的业务当中,我们通常会采取⼀种统⼀的配置⽂件格式,这样可以更好的维护(降低故障率)。

2. properties配置文件说明

properties 配置⽂件是最早期的配置⽂件格式,也是创建 Spring Boot 项目默认的配置⽂件

2.1 properties基本语法

properties是以键值的形式匹配的,key与value之间有“=”连接:

# 配置项⽬端⼝号
server.port=8084
# 配置数据库连接
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/database?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root

2.2 读取配置文件

如果在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤ @Value 注解来实现。
使用注解@Value使用${}的格式读取,如下:

@Component
public class Read {@Value("${server.port}")private String port;    
}

3. yml 配置文件说明

yml 是 YAML 是缩写,通常以.yml为后缀的文件,是一种直观的能够被电脑识别的数据序列化格式。

3.1 yml 基本语法

  • k:v键值对的形式表示,冒号后面必须有一个空格。
  • 对大小写敏感
  • 用递进表示层级关系,缩进只能用空格,不能用 Tab 键缩进
  • 字符串可以不用双引号

如下代码:

# 配置项⽬端⼝号
server:port: 8084# 配置数据库连接
spring:datasource:url: jdbc:mysql://127.0.0.1:3306/database?characterEncoding=utf8username: rootpassword: root

4.properties与yml 对比

  • properties 是以 key=value 的形式配置的键值类型的配置文件,yml使用的类似于json格式的树形配置方式
  • properties 为早期并且默认的配置文件格式,配置时存在冗余数据的问题,使用yml可以解释数据冗余问题
  • yml通用性好,支持很多语言,例如:Java、Go、Python 等,如果是云服务器开发,可以使⽤⼀份配置⽂件作为 Java 和 Go 的共同配置文件。

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

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

相关文章

落地 DevOps,探索高效研发运营一体化解决方案

前言与概述 伴随着企业业务的快速发展,为了支撑业务发展,提高 IT 对业务的支撑能力建设。在研发工程协同方面,希望加强代码管理,实现持续构建、自动化测试、自动化部署、自动化运维,同时加强产品的安全和质量管理&…

数据特征降维 | 核主元分析KPCA数据降维

文章目录 效果一览文章概述部分源码部分源码参考资料效果一览 文章概述 数据特征降维 | 核主元分析KPCA,主要用于数据降维。 部分源码 部分源码 %% 清空环境变量 warning off % 关闭报警信息 close all % 关闭开启的图窗 clear …

【算法】区间合并类题目总结

文章目录 重叠区间:452. 用最少数量的箭引爆气球解法1——左边界排序解法2——右边界排序 无重叠区间:435. 无重叠区间解法1——左边界排序解法2——右边界排序 合并区间:56. 合并区间左边界排序这题为什么不能按照右边界排序?其实…

excel中函数vlookup使用方法

1、VLOOKUP函数是Excel中的一个纵向查找函数,它与 LOOKUP函数和 HLOOKUP函数属于一类函数,在工作中都有广泛应用。VLOOKUP是按列查找,最终返回该列所需查询列序所对应的值;与之对应的HLOOKUP是按行查找的。接下来以5位同学成绩表为…

macOS Sonoma 14beta 3(23A5286g)发布(附黑/白苹果镜像地址)

系统镜像下载:百度:黑果魏叔 系统介绍 黑果魏叔 7 月 6 日消息,苹果今日向 Mac 电脑用户推送了 macOS 14 开发者预览版 Beta 3 更新(内部版本号:23A5286g),本次更新距离上次发布隔了 14 天。 小…

mqadmin命令的使用

mqadmin命令的使用 F:\rocketmq-all-4.9.7-bin-release\bin>mqadmin The most commonly used mqadmin commands are: updateTopic Update or create topic deleteTopic Delete topic from broker and NameServer. updateSubGroup Update or create subscription group delet…

vue3脚本绑定CodeMirror的使用

代码&#xff1a; <template><CodeMirrorref"codeMirror":value"codeVal":languageSingle"languageSingle":readOnly"!isEdit"submitCode"submitCode"></CodeMirror> </template><script setup…

SpringBoot+Vue 的在线考试系统

&#x1f495;&#x1f495;作者&#xff1a;程序员徐师兄 个人简介&#xff1a;7 年大厂程序员经历&#xff0c;擅长Java、微信小程序、Python、Android等&#xff0c;大家有这一块的问题可以一起交流&#xff01; 各类成品java毕设 。javaweb&#xff0c;ssh&#xff0c;ssm&…

Maven高级(二)--继承与版本锁定

一.继承 1.目的&#xff1a;不同模块中经常需要用到同一个依赖&#xff0c;这样要在每个pom.xml中都引入对应的坐标&#xff0c;继承可以用来解决依赖引入重复的问题。 2.实现&#xff1a;我们可以在创建一个父工程&#xff0c;然后将多个模块来继承这个父工程。然后再将各个模…

0代码训练GPT-5?MIT微软证实GPT-4涌现自我纠错能力迭代

我们都知道&#xff0c;大模型具有自省能力&#xff0c;可以对写出的代码进行自我纠错。 这种自我修复背后的机制&#xff0c;究竟是怎样运作的&#xff1f; 对代码为什么是错误的&#xff0c;模型在多大程度上能提供准确反馈&#xff1f; 近日&#xff0c;MIT和微软的学者发…

了解Spring

目录 什么是Spring? DI Spring 存与取 spring 的存操作 spring的取操作 更快速的进行 Spring 存 与 读 三大注入方式 Autowired set 注入 构造方法注入 Spring 容器中有多个相同的类时 Bean 作用域 设置作用域 Spring 执行流程 Bean 生命周期 什么是Spring? Sp…

uniapp 发送全文件 支持App端ios、android,微信小程序,H5

由于uniapp提供的API在app端只能上传图片和视频&#xff0c;不能上传其他文件&#xff0c;说以只能借助插件了。 ios端用的这个插件 获取到文件对象 免费的 这个是返回一个 filePath 可用直接用于 uni.uploadFile 上传的路径&#xff0c;后面自己又改的File对象 全文件上传选择…