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/23092.html

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

相关文章

java单元测试(调试)

文章目录 测试分类JUnit单元测试介绍引入本地JUnit.jar编写和运行Test单元测试方法设置执行JUnit用例时支持控制台输入10.6.6 定义test测试方法模板 测试分类 **黑盒测试:**不需要写代码,给输入值,看程序是否能够输出期望的值。 **白盒测试…

【解决】Android Studio打包出现not found for signing config ‘externalOverride‘

问题出现场景 之前我的这个项目在另一台电脑上开发,现在迁移到这台计算机上,出现了key报错的问题,网络上有些说需要在XML中进行配置signature相关的内容,这个感觉比较复杂,本文主要介绍一个简单的解决方法,…

VectorCAST单元测试参数配置

一、打开 VectorCAST 通常情况下,技术人员会配置一个脚本文件(.bat、.cmd),用户可以通过这个脚本文件来启动 VectorCAST。使用脚本文件启动 VectorCAST,可以在启动时设置好编译器相关的环境变量,方便 Vecto…

el-ment ui 表格组件table实现列的动态插入功能

在实际需求中我们经常遇到各种奇葩的需求,不足为奇。每个项目的需求各不相同,实现功能的思路大致是一样的。 本文来具体介绍怎么实现table表格动态插入几列。 首先实现思路有2种, 1. 插入的位置如果是已知的,我知道在哪个标题的…

redis -速成

目录 (一)认识 Redis 1.1数据库分类 1.2 什么是Redis 1.2.1 redis简介 1.2.2 谁在用Redis 1.2.3 怎么学redis 1.2.4 Redis的安装 2 数据类型 2.1 概况 2.2 String类型 2.2.1 常用的命令 2.2.2 非常用命令 2.2.3 举例 2.2.4应用场景&#xf…

ELk日志平台搭建

ELk日志平台搭建 一、ELK概述 1.ELK简介 ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。2.组件 ●ElasticSearch:是基于Lucene…

qt和vue的交互

1、首先在vue项目中引入qwebchannel /******************************************************************************** Copyright (C) 2016 The Qt Company Ltd.** Copyright (C) 2016 Klarlvdalens Datakonsult AB, a KDAB Group company, infokdab.com, author Milian …

LangChain + ChatGLM2-6B 搭建个人专属知识库

之前教过大家利用 langchain ChatGLM-6B 实现个人专属知识库,非常简单易上手。最近,智谱 AI 研发团队又推出了 ChatGLM 系列的新模型 ChatGLM2-6B,是开源中英双语对话模型 ChatGLM-6B 的第二代版本,性能更强悍。 树先生之所以现…

能“出汗”,会“呼吸”的户外行走机器人

美国亚利桑那州立大学(ASU)科学家研制出了世界上第一个能像人类一样出汗、颤抖和呼吸的户外行走机器人模型。这个机器人名叫ANDI,是一个能模仿人类出汗的热敏“热模型”。 ANDI 身上不仅有可以使它行走的关节,还有其他机器人身上都没有的东西——它浑身…

编译libtiff库给IOS平台用

打开libtiff官方网 : libtiff / libtiff GitLab 克隆: git clone --recursive https://gitlab.com/libtiff/libtiff.git 克隆成功并打开libtiff目录,发现有autogen.sh 与CMakeLists.txt所以可生成Configure程序来配置并编译,也可直接使用CMake-GUI来配置编译,选择其中一种 …

R语言的水文、水环境模型优化技术及快速率定方法与多模型案例实践

在水利、环境、生态、机械以及航天等领域中,数学模型已经成为一种常用的技术手段。同时,为了提高模型的性能,减小模型误用带来的风险;模型的优化技术也被广泛用于模型的使用过程。模型参数的快速优化技术不但涉及到优化本身而且涉…

Prompt本质解密及Evaluation实战与源码解析(二)

9.4 Evaluation for Agents源码解析 如图9-4所示,转过来,我们再看一下LangChain框架代理评估(Evaluation for Agents)的源代码。 图9- 4 LangChain的evaluation agents目录 在trajectory_eval_prompt.py文件里面,写了一个非常经典的提示词。 1. """提示…