当前位置: 首页 > news >正文

【Spring】Spring Boot 配置文件(7)

本系列共涉及4个框架:Sping,SpringBoot,Spring MVC,Mybatis。

博客涉及框架的重要知识点,根据序号学习即可。

有什么不懂的都可以问我,看到消息会回复的,可能会不及时,请见谅!!

1、配置文件作用

1.1 配置文件的重要性

计算机上有数以千计的配置文件,其主要目的是为了解决硬编码【硬编码的意思就是将数据直接嵌入到程序或者其他可执行对象的源代码中,简单来说就是“代码写死”】带来的问题,把可能会发生改变的信息,放在一个集中的地方,当我们启动某个程序时,应用程序从配置文件中读取数据,并加载运行。

1.2 Spring Boot配置文件

(1)Spring Boot支持并定义了配置文件的格式,也在另一个层面达到了规范其他框架集成到Spring Boot的目的

(2)很多项目或者框架的配置信息也放在配置文件中,比如:项目的启动端口、数据库的连接信息(包含用户名和密码的设置)、第三方系统的调用密钥等信息、用于发现和定位问题的普通日志和异常日志等




2、配置文件格式与优先级

2.1 Spring Boot配置文件格式

(1)application.properties

(2)application.yml

(3)application.yaml

yml为yaml的简写,实际开发中出现频率最高,但是它的格式非常严格,一个空格也可能会导致出错。yaml和yml的使用方式一样的,所以只讨论前两个就好了

2.2 配置文件的优先级

理论上讲,.properties和.yml可以并存在一个项目,当.properties和.yml并存时,两个配置都会加载。如果配置文件有冲突,则以.properties为主,也就是.properties优先级更高




3、使用application.properties进行配置

3.1 基本语法

(1)properties配置文件是最早期的配置文件格式,也是创建SpringBoot项目默认的配置文件

(2)properties是以键值对的形式配置的,key和value之间用等号连接

(3)例子

ps:#号后为注释

# 配置项目端口号
server.port=9090# 配置数据库的连接信息
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/db?characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root

3.2 读取配置文件

如果在项目中,想要主动读取配置文件的内容,可以使用@Value注解来实现,@Value注解使用"${ }"的格式读取

可以在方法上添加该注解,然后在方法中可以获取需要的配置文件的内容

3.3 properties使用缺点

很明显通过上面的例子可以看出来,properties文件中会有很多重复的、冗余的信息。为了解决这个问题,就可以使用yml配置文件的格式化了。




4、使用application.yml文件进行配置

4.1 基本语法

(1)yml是YAML(Yet Another Markup Language)的缩写,翻译成中文就是“另一种标记语言”。

(2)yml的基础语法:是以“Key: Value”的形式存在的。key和value之间使用英文冒号和空格的方式,空格不可省略。这里就能感觉到yml文件的劣势就是格式要求非常严格,一个简单的空格就会导致配置文件读取失败。

4.2 使用yml连接数据库

spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mybatisdb?characterEncoding=utf8&useSSL=falseusername: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driver

4.3 yml配置不同的数据类型及null

        4.3.1 yml配置读取

        yml读取配置的方式和properties相同,使用@Value注解即可,@Value注解使用"${ }"的格式读取

        4.3.2 value值加单双引号

        字符串默认不用加上单引号或者双引号,如果加英文的单双引号可以表示特殊的含义。

        (1)单引号会转义特殊字符,使其失去特殊功能,始终是一个普通的字符串

        (2)双引号不会转义字符串里面的特殊字符,特殊字符会表示本身的含义

举例:\n使用单引号的话,就不表示换行了,是一个普通的字符串,而\n使用双引号括起来表示它本身的含义,就是换行

4.4 配置对象

在yml中配置

这个时候不能用@Value来读取配置中的对象了,此时要使用另一个注解@ConfigurationProperties来读取

4.5 配置集合

4.6 配置Map

4.7 yml 优缺点

(1)优点:

①可读性高,写法简单,易于理解

②支持更多的数据类型,可以简单表达数组、对象、List、Map等数据形态

③支持更多的编程语言,不局限于Java,还可以在Python、Ruby、Golang等中使用

(2)缺点:

①不适合写复杂的配置文件

②格式十分严格

相关文章:

【Spring】Spring Boot 配置文件(7)

本系列共涉及4个框架:Sping,SpringBoot,Spring MVC,Mybatis。 博客涉及框架的重要知识点,根据序号学习即可。 有什么不懂的都可以问我,看到消息会回复的,可能会不及时,请见谅!! 1、配置文件作…...

《向量数据库指南》——解锁Wikipedia文章向量的跨语言搜索秘籍

嘿,各位向量数据库和AI应用的小伙伴们,我是你们的老朋友王帅旭,大禹智库的向量数据库高级研究员,也是《向量数据库指南》的作者。今天,咱们来聊聊一个超棒的数据集——百万条 Wikipedia 文章向量,这可是我在研究过程中发现的一个宝藏啊! 首先,咱们得说说这个数据集的来…...

【力扣 + 牛客 | SQL题 | 每日5题】牛客SQL热题204,201,215

1. 力扣1126:查询活跃业务 1.1 题目: 事件表:Events ------------------------ | Column Name | Type | ------------------------ | business_id | int | | event_type | varchar | | occurrences | int | --------…...

下载数据集用于图像分类并自动分为训练集和测试集方法

一、背景 最近需要用Vision Transformer(ViT)完成图像分类任务,因此查到了WZMIAOMIAO的GitHub,里面有各种图像处理的方法。而图像处理的前期工作就是获取大量的数据集,用于训练模型参数,以准确识别或分类我…...

Python xlrd库介绍

一、简介 xlrd是一个用于读取Excel文件(.xls和.xlsx格式)的Python库。它提供了一系列函数来访问Excel文件中的数据,如读取工作表、单元格的值等。 二、安装 可以使用以下命令安装xlrd库: pip install xlrd 三、使用方法 1. 导入库: 示例…...

Javascript立即执行函数

//立即执行函数 把函数的声明看作一个整体声明结束就立即调用 // (function(){console.log(hello) // })(); console.log((function (){ return 0; })()); // let afunction(){ console.log(hello) }; console.log(typeof a);//function,数组:objeck...

Linux相关概念和易错知识点(17)(文件、文件的系统调用接口、C语言标准流)

目录 1.文件 (1)文件组成和访问 (2)文件的管理 (3)C语言标准流 (4)struct file ①文件操作表 ②文件内核缓冲区 (5)Linux下一切皆文件 (…...

三防加固工业平板国产化的现状与展望

在当今全球科技竞争日益激烈的背景下,工业4.0和智能制造的浪潮推动了工业自动化设备的迅速发展,其中,三防加固工业平板电脑作为连接物理世界与数字世界的桥梁,其重要性不言而喻。所谓“三防”,即防水、防尘、防震&…...

3.1.3 看对于“肮脏”页面的处理

3.1.3 看对于“肮脏”页面的处理 文章目录 3.1.3 看对于“肮脏”页面的处理再看对于“肮脏”页面的处理MmPageOutVirtualMemory() 再看对于“肮脏”页面的处理 MmPageOutVirtualMemory() NTSTATUS NTAPI MmPageOutVirtualMemory(PMADDRESS_SPACE AddressSpace,PMEMORY_AREA Me…...

学 Python 还是学 Java?——来自程序员的世纪困惑!

文章目录 1. Python:我就是简单,so what?2. Java:严谨到让你头疼,但大佬都在用!3. 到底谁更香?——关于学哪门语言的百思不得姐结论——到底该选谁?推荐阅读文章 每个程序员都可能面…...

Spring Web MVC 入门

1. 什么是 Spring Web MVC Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从从⼀开始就包含在Spring框架中。它的 正式名称“SpringWebMVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为"Spring MVC". 什么是Servlet呢? Ser…...

吃牛羊肉的季节来了,快来看看怎么陈列与销售!

一、肉品陈列基本原则 (一)新鲜卫生 1、保证商品在正确的温度、正确的方式下陈列 (1)正确的温度:冷藏柜-2℃-2℃;冷冻柜库-20℃-18℃ (2)正确的方式: 商品不遮挡冷气出风口&…...

租房业务全流程管理:Spring Boot系统应用

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了租房管理系统的开发全过程。通过分析租房管理系统管理的不足,创建了一个计算机管理租房管理系统的方案。文章介绍了租房管理系统的系统分析部分&…...

GCC之编译(7)Linker链接脚本

GCC之(7)Linker链接脚本 Author: Once Day Date: 2024年10月25日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 本文档翻译自GNU LD链接脚本官方手册 参考文章: GNU LD …...

【设计模式系列】适配器模式(九)

目录 一、什么是适配器模式 二、适配器模式的角色 三、适配器模式的典型应用 四、适配器模式在InputStreamReader中的应用 一、什么是适配器模式 适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将不兼容的接口转换为一个客户端…...

C# 文档打印详解与示例

文章目录 一、概述二、PrintDocument 类的使用三、PrintDialog 类的使用四、PageSetupDialog 类的使用五、PrintPreviewDialog 类的使用六、完整示例七、总结 在软件开发过程中,文档打印是一个常见的功能需求。本文将详细介绍如何在C#中实现文档打印,并给…...

Spring Cloud --- Sentinel 熔断规则

熔断规则 慢调用比例 发送10个请求,每个请求理想响应时长为200毫秒。统计1秒钟,如果10个请求响应时间超过200毫秒的比例大于等于10%,则触发熔断,熔断5秒。 异常比例 1秒内,发送请求出现异常率为20%,则触…...

使用爬虫爬取Python中文开发者社区基础教程的数据

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…...

你了解kafka消息队列么?

消息队列概述 一. 消息队列组件二. 消息队列通信模式2.1 点对点模式2.2 发布/订阅模式 三. 消息队列的优缺点3.1 消息队列的优点3.2 消息队列的缺点 四. 总结 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者&…...

力扣102 二叉树的层序遍历 广度优先搜索

二叉树的层序遍历 题目描述 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15…...

堆(堆排序,TOP K, 优先级队列)

1 概念解释 堆的定义:堆是一颗完全二叉树,分为大堆和小堆 大堆:一棵树中,任何父亲节点都大于等于孩子的节点,大堆的根结点最大 小堆:一棵树中,任何父亲节点都小于等于孩子节点,小堆…...

(三)行为模式:11、模板模式(Template Pattern)(C++示例)

目录 1、模板模式含义 2、模板模式的UML图学习 3、模板模式的应用场景 4、模板模式的优缺点 5、C实现的实例 1、模板模式含义 模板模式(Template Method Pattern)是一种行为设计模式,它定义了一个操作中的算法骨架,将某些步骤…...

贝叶斯中的充分统计量

内容来源 贝叶斯统计(第二版)中国统计出版社 前两篇笔记简述经典统计中的充分统计量和判断充分统计量的 N e y m a n Neyman Neyman 因子分解定理 而在贝叶斯统计中,充分统计量也有一个充要条件 定理兼定义 设 x ( x 1 , x 2 , ⋯ , x …...

012:ArcGIS Server 10.2安装与站点创建教程

摘要:本文详细介绍地理信息系统服务器软件ArcGIS Server 10.2的安装与站点创建流程。 一、软件介绍 ArcGIS Server 10.2是Esri公司开发的一款强大的地理信息系统(GIS)服务器软件。它支持发布和共享地图、地理数据处理服务及空间分析功能&…...

xlive.dll错误的详细解决办法步骤教程,xlive.dll基本状况介绍

在计算机的众多文件中,“xlive.dll”扮演着独特而重要的角色。所以当你的电脑丢失了xlive.dll文件时,会倒是电脑不能正常运行,那么出现这样的问题有什么办法可以将丢失的xlive.dll进行修复呢?今天这篇文章将和大家聊聊xlive.dll错…...

通俗易懂的餐厅例子来讲解JVM

餐厅版本 JVM(Java虚拟机)可以想象成一个虚拟的计算机,它能够运行Java程序。为了让你更容易理解,我们可以用一个餐厅的比喻来解释JVM: 菜单(Java源代码): 想象一下,Java…...

Python从入门到高手7.3节-列表的常用操作方法

目录 7.3.1 列表常用操作方法 7.3.2 列表的添加 7.3.3 列表的查找 7.3.4 列表的修改 7.3.5 列表的删除 7.3.6 与列表有关的其它操作方法 7.3.7 与10月说再见 7.3.1 列表常用操作方法 列表类型是一种抽象数据类型,抽象数据类型定义了数据类型的操作方法。在本…...

Prompt提示词设计:如何让你的AI对话更智能?

Prompt设计:如何让你的AI对话更智能? 在人工智能的世界里,Prompt(提示词)就像是一把钥匙,能够解锁AI的潜力,让它更好地理解和响应你的需求。今天,我们就来聊聊如何通过精心设计的Pr…...

2024-10月的“冷饭热炒“--解读GUI Agent 之computer use?phone use?——多模态大语言模型的进阶之路

GUI Agent 之computer use?phone use?——多模态大语言模型的进阶之路 1.最新技术事件浅析三、思考和方案设计工具代码部分1.提示词2.工具类API定义,这里主要看computer tool就够了 总结 本文会总结概括这一应用的利弊,然后给出分析和工具代…...

Me 攒的GPT修改论文提示词

没有会员的GPT They demonstrated that QGAN exhibits an exponential advantage over classical methods when using data consisting of samples of measurements made on high-dimensional spaces. 作为related work 时态对吗? 有需要修改的吗?你可…...

建设网站服务器端环境要求/seo排名怎么样

欢迎关注我的公众号: 目前刚开始写一个月,一共写了18篇原创文章,文章目录如下: istio多集群探秘,部署了50次多集群后我得出的结论 istio多集群链路追踪,附实操视频 istio防故障利器,你知道几…...

合肥瑶海区政府网站官网/网站推广工具

1.使用服务的目的: 服务是为不同组件之间共享信息提供的方法, 如组件不应该直接获取或者保存数据,不应了解是否展示假数据, 而(组件)更应该聚焦数据展示,把数据访问的职责委托给某个服务&#x…...

专业营销型网站建设/百度下载安装最新版

1说明 kubeasz 致力于提供快速部署高可用k8s集群的工具, 同时也努力成为k8s实践、使用的参考书;基于二进制方式部署和利用ansible-playbook实现自动化;既提供一键安装脚本, 也可以根据安装指南分步执行安装各个组件。 kubeasz 从每一个单独部件组装到完…...

郑州做网站锐/北京官网优化公司

从筚路蓝缕到手握未来:在云栖大会回望中国IT产业的三个瞬间 在最近的云栖大会上,科技新物种正在以爆炸式的趋势出现在我们眼前。横跨大陆的阿里云-哈利法大学智慧能源联合创新实验室、搭载在飞艇上的“天空物联网”、驱动力更强的杭州城市大脑2.0……恍惚…...

河北建设厅网站首页/站长工具推荐网站

本章将分为三个部分: KVC是什么KVC之Set/GetKVC键值路径之Set/GetKVC是什么 KVC,即 NSKeyValueCoding,一个非正式的 Protocol,提供一种机制来间接访问对象的属性,并不需要调用setter/getter函数或者类的实例变量。 KVC…...

更换网站首页模板怎么做/做网络推广有哪些平台

PHP - PDT - HTML Syntax Validator (for PHP Files)由于HTML Syntax Validator (for PHP Files)可能会导致内存不足,此时可以关闭HTML Syntax Validator (for PHP Files),位置在Windows菜单,Preferences菜单项,Validation&#x…...