自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 收藏
  • 关注

原创 RabbitMQ_9_RabbitMQ应用问题

本文介绍了消息队列中的三个核心问题及解决方案。幂等性方面,分析了重复消息的产生原因及通过唯一ID、业务判断等方法确保多次处理效果一致;顺序性保障方面,探讨了消息错序场景并提出单队列消费、分区处理等策略;消息积压问题则从生产消费速率匹配、资源优化等角度给出应对方案。针对RabbitMQ的特性,文章指出其支持"最多一次"和"最少一次"传输,但需业务层面实现"恰好一次"的可靠性保障,为分布式系统消息处理提供了实用指导。

2025-12-22 16:46:42 698 4

原创 RabbitMQ_8_高级特性(完)

本文介绍了RabbitMQ延迟队列的实现方案及应用场景。主要内容包括: 两种延迟队列实现方式:TTL+死信队列组合(需保证消息顺序)和官方延迟插件(更灵活) 事务机制实现消息原子性操作 消息分发策略:通过prefetch参数实现限流和负载均衡 应用场景示例:智能家居定时控制、订单超时处理、用户活跃度提升等 代码示例展示了队列声明、消息发送、消费者处理等核心实现细节 文章对比了不同方案的优缺点,并提供了完整的配置和实现示例,帮助开发者根据实际需求选择合适的延迟队列实现方式。

2025-12-18 22:36:36 1277 2

原创 RabbitMQ_7_高级特性(4)

RabbitMQ中的TTL(过期时间)机制和死信队列详解 RabbitMQ支持为消息和队列设置TTL(过期时间),当消息过期后会被自动清除。TTL设置有两种方式:队列级TTL(统一过期时间)和消息级TTL(自定义过期时间)。若同时设置,则以较小值为准。死信队列(DLQ)用于存储无法被消费的消息,包括过期消息、被拒绝消息和队列满时的溢出消息。死信队列通过死信交换机(DLX)实现消息路由,常用于异常处理、消息重试和日志收集等场景。在代码实现中,需要分别配置正常队列/交换机和死信队列/交换机,并通过deadLet

2025-12-16 09:00:00 1467 2

原创 RabbitMQ_6_高级特性(3)

RabbitMQ消息可靠性保障方案 RabbitMQ通过两种机制确保消息可靠传输: 发送方确认机制: Confirm模式:确认消息是否到达Exchange Return模式:处理无法路由到队列的消息 通过设置ConfirmCallback和ReturnsCallback实现回调处理 消费者确认机制: 三种确认模式:NONE(自动)、MANUAL(手动)、AUTO(异常时重试) 可配置重试参数:间隔时间、最大重试次数 手动模式下需显式调用basicAck/basicNack 完整可靠性方案包括: 生产者到Ex

2025-12-11 18:56:20 1011 1

原创 RabbitMQ_5_高级特性(2)

本文介绍了RabbitMQ的持久化机制,包括交换机、队列和消息三个层面的持久化设置。交换机持久化通过声明时设置durable=true实现,队列持久化同理,而消息持久化需将deliveryMode设置为PERSISTENT。文章通过实验验证了不同组合下的持久化效果:仅设置消息持久化而队列非持久化会导致数据丢失,三者都持久化也不能100%保证数据安全。最后指出持久化会降低性能,建议在可靠性和吞吐量之间权衡取舍,并提出了引入仲裁队列和发送方确认机制等增强可靠性的方案。

2025-12-10 09:00:00 953 2

原创 RabbitMQ_4_高级特性(1)

RabbitMQ消息确认机制确保消息可靠消费的关键方法。文章介绍了两种确认模式:自动确认(autoAck=true)适合对可靠性要求不高的场景,消息投递即删除;手动确认(autoAck=false)则需消费者显式调用basicAck确认后才会删除消息,确保消息不丢失。Spring-AMQP提供了三种确认策略:NONE(自动确认)、AUTO(处理成功自动确认,异常不确认)和MANUAL(必须显式确认)。通过代码示例展示了不同策略下的消息处理效果,特别是手动确认模式下如何通过basicAck和basicNack

2025-12-07 18:38:00 1073

原创 RabbitMQ_3_RabbitMQ应用

RabbitMQ提供了7种工作模式:简单模式(单生产者单消费者)、工作队列模式(单生产者多消费者竞争消费)、发布订阅模式(广播机制)、路由模式(基于RoutingKey精确匹配)、通配符模式(支持*和#模糊匹配)、RPC模式(远程调用)和发布确认模式(确保消息可靠发送)。本文详细介绍了每种模式的实现原理、适用场景及Java代码示例,包括Spring Boot整合方式。重点讲解了交换机的四种类型(fanout、direct、topic、headers)及其路由策略,并展示了跨应用通信的实践方案。通过配置Jac

2025-12-04 22:45:42 1240 2

原创 RabbitMQ_2_RabbitMQ快速入门

2、Virtual Host可以看作是物流公司为不同客户或业务部门划分的独立运营中心,每个运营中心都有自己的仓库(Queue),分拣规则(Exchange)和运输路线(Connectional和Channel),这样可以确保不同客户的包裹处理不会相互干扰,同时提供定制化的服务。RabbitMQ管理界面上的Connections,Channels,Exchange,Queues就是和上面流程图的概念是一样的,Overview就是视图的意思,Admin是用户管理。这个分配的工作,就是交换机来做的。

2025-12-02 16:58:01 778 2

原创 RabbitMQ_1_RabbitMQ概述

摘要:RabbitMQ是一款基于AMQP协议的开源消息中间件,采用Erlang语言开发,具有异步解耦、流量削峰、消息分发等功能。相比Kafka和RocketMQ,RabbitMQ功能完备、支持多语言、管理界面友好,适合中小型企业使用。它最初应用于金融系统,后被Pivotal公司开源,现广泛应用于互联网行业。文章介绍了MQ的基本概念、作用及主流产品对比,重点阐述了RabbitMQ的特点和适用场景。(149字)

2025-12-01 13:23:42 1024 3

原创 Redis_19_分布式锁

摘要:分布式锁用于解决分布式系统中多节点访问共享资源的互斥问题。基于Redis的实现方式包括:1)使用SETNX命令加锁,DEL命令解锁;2)设置过期时间防止死锁;3)通过唯一ID校验避免误删;4)使用Lua脚本保证原子性;5)引入看门狗机制动态续约;6)采用Redlock算法应对Redis故障。相比进程内锁,分布式锁需要考虑网络延迟、节点故障等额外因素,通过多机制组合确保可靠性。其他实现方案还包括MySQL、ZooKeeper等。

2025-11-28 09:00:00 1546 2

原创 Redis_18_缓存

Redis作为高性能内存数据库,主要用作MySQL等关系型数据库的缓存,解决数据库性能瓶颈问题。缓存工作原理基于二八定律,存储20%热点数据应对80%请求。文章详细介绍了三种缓存更新策略(定期生成、实时生成、缓存预热)和四种内存淘汰算法(FIFO、LRU、LFU、Random)。针对缓存异常情况,分析了缓存穿透(非法key查询)、缓存雪崩(大规模key失效)和缓存击穿(热点key失效)的成因及解决方案,包括布隆过滤器、随机过期时间、服务降级等技术手段。通过合理使用Redis缓存,可有效保护数据库,提升系统整

2025-11-27 00:00:18 790 1

原创 Redis_17_集群

本文详细介绍了Redis集群的核心概念和实现方式。首先区分了广义集群与Redis特有集群模式,后者通过数据分片解决存储空间问题。重点讲解了三种数据分片算法:哈希求余法(扩容成本高)、一致性哈希(降低搬运成本但分配不均)和Redis采用的哈希槽分区(平衡搬运与分配)。随后通过Docker搭建11节点Redis集群的实践步骤,包括配置文件生成、yml编写、集群构建和故障转移测试。最后演示了集群扩容操作,包括新增主节点、槽位重分配和添加从节点。全文系统性地阐述了Redis集群从理论到实践的关键技术点。

2025-11-26 09:00:00 1769

原创 Redis_16_哨兵

Redis哨兵机制通过自动化监控和故障转移解决了主从复制模式下人工干预主节点故障的问题。哨兵进程独立运行,不存储数据,仅负责监控Redis服务器状态。多个哨兵节点构成集合,通过选举leader实现故障转移:1)主观下线确认主节点故障;2)客观下线由多个哨兵共同判定;3)选举leader并选择新主节点(基于优先级、offset等);4)自动通知客户端新主节点信息。使用Docker部署时需注意网络配置确保哨兵与Redis节点互通。哨兵机制提高了系统可用性,但不能解决写丢失和存储容量问题,建议部署奇数个哨兵节点分

2025-11-22 18:59:36 994 4

原创 Redis_15_主从复制

Redis主从复制解决了单点服务器的可用性和性能瓶颈问题。主节点负责写操作,从节点负责读操作,提高了系统的并发处理能力。主从模式通过数据复制机制保证数据一致性,从节点自动同步主节点数据变更。配置主从结构时需注意端口分配、工作目录隔离等问题。主从复制分为全量复制、部分复制和实时复制三种方式,采用心跳机制维持连接。虽然主从复制提升了系统可靠性,但当主节点故障时仍需人工干预,这是其局限性所在。该模式适用于读多写少的业务场景,为构建高可用Redis系统奠定了基础。

2025-11-20 21:36:52 789 2

原创 Redis_14_Redis事务

Redis事务特性较MySQL更为简化:1.原子性存在争议,支持打包执行但不保证回滚;2.缺少一致性和持久性保障;3.单线程模型使隔离性不成为问题。主要用途是打包操作防止命令插队,通过WATCH机制实现类似乐观锁的版本控制。相比MySQL事务,Redis牺牲了ACID特性的完整性以换取更高的性能,适用于秒杀等需要快速打包执行的场景,但在集群模式下不支持事务。核心差异在于Redis更注重效率而非数据完整性的严格保证。

2025-11-17 19:45:09 858 1

原创 Redis_13_持久化(2)

本文系统讲解了Redis两种持久化机制:RDB和AOF。RDB通过定时快照实现二进制数据备份,适合全量复制但存在实时性问题;AOF通过记录命令操作实现实时持久化,但文件体积较大。文章详细对比了两者的特点:RDB加载快但可能丢失数据,AOF实时性强但恢复较慢。重点解析了AOF的重写机制(瘦身冗余数据)和混合持久化模式(结合RDB二进制格式提高效率)。同时探讨了AOF缓冲区刷新策略的可靠性权衡,以及父子进程协作实现持久化的技术细节,为Redis数据持久化提供了全面的技术参考。

2025-11-16 18:15:47 672

原创 Redis_12_持久化(1)

本文主要介绍了Redis实现持久化的两种策略:RDB和AOF。RDB通过定时创建内存数据快照实现持久化,支持手动触发(save/bgsave)和自动触发两种方式。重点讲解了bgsave的工作流程,采用多进程和写时复制技术避免阻塞主进程。文章还演示了RDB的实际效果,包括手动执行、自动触发以及异常处理等情况。同时指出RDB的局限性在于数据可能存在一定时间差,而AOF则可以提供更实时的数据持久化。最后还介绍了RDB文件检查和修复的相关工具和方法。

2025-11-15 22:28:36 883 1

原创 Redis_11_类型补充+命令补充+RESP

Redis除了常用的5种数据类型外,还有5种较少使用的类型:Stream(消息队列)、Geospatial(地理坐标存储)、HyperLogLog(基数统计)、Bitmaps(位图)和Bitfields(位域)。这些类型各有特定用途,如HyperLogLog以极小空间实现大容量去重计数,Bitmaps能高效存储整数集合。此外,Redis支持渐进式SCAN命令安全遍历键,提供16个隔离数据库,并公开了RESP协议简化客户端开发。这些特性使Redis在保持高性能的同时,能灵活应对多样化场景需求。

2025-11-12 20:40:55 854 1

原创 Redis_10_Zset

Redis的有序集合Zset是一种基于分数排序的数据结构,与普通集合不同,它通过为每个成员关联一个分数来实现升序/降序排列。Zset的主要特性包括:成员唯一但分数可重复;按照分数排序,分数相同时按字典序排列。常用操作命令包括:ZADD添加元素、ZRANGE获取区间元素、ZCARD获取基数、ZCOUNT统计分数区间元素数、ZPOPMAX/MIN删除并返回最高/低分元素等。Zset内部实现采用跳表结构,保证O(logN)的操作效率。典型应用场景包括排行榜系统(如微博热搜、游戏天梯),能高效处理实时变化的分数排序

2025-11-11 01:10:29 722 1

原创 Redis_9_Set

Redis中的Set是一种无序且元素不重复的数据结构,支持多种操作命令。主要特点包括:1)元素无序且唯一;2)支持基本操作如添加(SADD)、查询(SMEMBERS)、判断存在(SISMEMBER)等;3)提供集合运算功能如交集(SINTER)、并集(SUNION)、差集(SDIFF)等;4)适用于用户标签管理、共同好友统计和UV统计等场景。Set有两种编码方式:inset(整数集合优化)和哈希表,能高效处理集合运算和去重需求。

2025-11-09 21:57:25 854

原创 Redis_8_List

Redis的List类型是一个有序元素集合,支持双端操作。主要特点包括:1)元素有序且可重复;2)支持左右插入/删除操作,可用作栈、队列或数组;3)提供阻塞式POP操作;4)底层采用quicklist结构(链表+压缩列表组合)。应用场景包括消息队列、微博Timeline等,但要注意1+N查询问题和中间元素访问效率问题。常用命令如LPUSH/RPUSH实现插入,LPOP/RPOP实现删除,LRANGE实现范围查询,BLPOP/BRPOP实现阻塞获取。

2025-11-08 17:26:27 893

原创 Redis_7_hash

摘要:Redis哈希表是重要数据结构,通过HSET、HGET等命令实现高效键值操作。其内部采用ziplist或hashtable编码方式,根据元素数量和值长度自动转换。相比字符串类型,哈希更适合存储结构化数据,支持灵活操作单个字段,但会消耗更多内存。在缓存场景中,哈希比JSON字符串更直观高效,但不适合复杂查询。使用时需注意大哈希操作可能阻塞服务器,建议使用HSCAN渐进式遍历。

2025-11-07 17:31:23 950

原创 Redis_6_String

Redis的字符串类型采用二进制存储,不进行编码转换,可存储文本、JSON、XML及二进制数据(上限512MB),但不建议存储大文件。核心命令包括SET(支持NX/XX选项)、GET、MSET/MGET(批量操作)、INCR/DECR(原子计数)等。字符串操作如APPEND、GETRANGE等需注意中文字符的字节处理。应用场景包括缓存(热点数据)、计数、共享Session和验证码功能。Redis字符串编码分int、embstr(短字符串)和raw(长字符串),存储小数时转为字符串处理。业务优化能有效缓解技术

2025-11-06 17:56:09 862

原创 Redis_5_单线程模型

针对TCP来说,服务器这边每次要服务一个客户端,都需要给这个客户端安排一个socket,一个服务器服务多个客户端,同时就有很多个socket,这些socket都不是在无时无刻地传输数据,很多时刻下,每个客户端和服务器之间地通信也没有那么频繁,很多socket大部分时间都是静默地,上面是没有数据需要传输的,只有少数socket是活跃的~~微观上,我们进了食堂的门,还是要排队。redis每个基本操作,都是短平快的~~就是简单操作一下内存数据,不是什么特别消耗CPU的操作,就算搞多个线程,提升也不大~~?

2025-11-04 22:43:19 572

原创 Redis_4_常见命令(完)+认识数据类型和编码方式

Redis的key过期策略通过两种方式实现:1) 定期删除 - 随机抽查部分key检查过期时间,避免全量扫描;2) 惰性删除 - 访问时检查key是否过期。这两种策略结合仍可能残留过期key,因此Redis还提供了内存淘汰机制作为补充。值得注意的是Redis未采用定时器方案删除过期key,主要考虑单线程架构的简洁性。Redis的值编码方式会根据数据类型和内容优化,如string有raw/int/embstr,hash有hashtable/ziplist等,这些编码方式可在运行时通过OBJECT ENCODI

2025-11-04 20:49:02 1140

原创 Redis_3_Redis介绍+常见命令

Redis是一个客户端-服务器结构的键值对存储系统,既可作为缓存又可作为数据库。它支持多种数据结构,value可以是字符串、哈希表、列表等。常用命令包括set/get、keys、exists、del和expire等。Redis比MySQL快但比直接操作内存慢,选择使用时需权衡性能和持久性需求。生产环境中要避免keys*等耗时命令防止阻塞。Redis适合处理热点数据、验证码、分布式锁等场景,设置过期时间是重要功能。

2025-11-01 17:33:38 623 1

原创 Redis_2_特性介绍+应用场景

Redis作为内存数据库核心特性包括:内存存储、键值结构、可编程性(支持Lua脚本)、可扩展性(提供API扩展)、持久化存储(内存+硬盘备份)、集群支持、高可用性(主从结构)以及卓越性能(内存访问+单线程模型)。主要应用于数据库(全量数据存储)、缓存(热点数据)、会话存储和轻量级消息队列场景。相比传统关系型数据库,Redis以内存操作和简单数据结构实现毫秒级响应,特别适合分布式系统中对速度要求高的场景。

2025-10-30 12:31:18 889

原创 Redis_1_初识Redis+浅谈分布式系统

本文介绍了Redis的定位及分布式系统的演进过程。Redis最初作为消息中间件设计,现主要用作内存数据库,相比MySQL访问速度更快但存储空间有限。为解决性能问题,常将Redis与MySQL结合使用。接着阐述了分布式架构的演进路径:从单机架构到应用服务集群、读写分离、引入缓存、分库分表,最终到微服务架构。每个阶段都面临性能瓶颈问题,解决方案包括水平扩展、负载均衡、冷热数据分离等,但也带来系统复杂度和运维难度的提升。文章强调了在架构演进中需要权衡性能、成本和系统复杂度,最终实现可扩展的高性能系统。

2025-10-29 14:41:40 784

原创 Spring原理

本文介绍了Spring框架中Bean的作用域与生命周期,以及SpringBoot自动装配机制。主要内容包括: Bean作用域:Spring支持6种作用域(单例、原型、请求、会话、全局、WebSocket),通过@Scope注解配置,不同作用域影响Bean的创建方式和使用范围。 Bean生命周期:分为实例化、属性注入、初始化、使用和销毁五个阶段,可通过实现特定接口或使用注解(如@PostConstruct)自定义初始化和销毁逻辑。 SpringBoot自动装配:通过@ComponentScan扫描包路径或@I

2025-08-22 22:59:55 1064 2

原创 Linux

本文介绍了Linux操作系统的基础知识、常用命令及Java Web项目部署流程。主要内容包括:Linux发展历史、常见发行版、目录结构等背景知识;ls、cd、vim等20余个常用命令详解;使用apt安装JDK和MySQL的步骤;以及将Java Web项目部署到Linux服务器的完整流程,涵盖环境配置、数据库准备、项目打包上传、端口开放等关键环节。文章还提供了项目部署常见问题的排查方法,帮助开发者顺利完成Linux环境下的应用部署。

2025-08-20 00:59:50 1137 4

原创 实现登录and加密功能

JWT全称:JSON Web TokenJSON Web Token(JWT)是一个开放的行业标准(RFC 7519),用于客户端和服务器之间传递安全可靠的信息。其本质是一个token,是一种紧凑的url安全方法(注意:不是加密的方式实现安全,令牌本质上是不安全的)在Mysql数据库中,我们常常要对密码,身份证号,手机号等敏感信息进行加密,以保证数据的安全性,如果使用明文存储,当黑客入侵了数据库时,就可以轻松获取到用户的相关信息,从而对用户或者企业造成信息泄漏或者财产损失。

2025-08-13 15:43:19 929 1

原创 Spring_事务

本文总结了MySQL事务基本概念及Spring框架实现事务的两种方式。主要内容包括:1. 事务概念回顾:包括事务的ACID特性、事务操作步骤(开启/提交/回滚);2. Spring事务实现:编程式事务(手动管理)和声明式事务(@Transactional注解);3. @Transactional详解:异常处理(rollbackFor)、事务隔离级别、传播机制(7种传播行为);4. 实践案例:通过用户注册和日志记录场景演示REQUIRED、REQUIRES_NEW等传播机制的实际效果。文章通过代码示例和测试结

2025-08-06 22:06:43 1284 7

原创 Spring AOP_2

本文介绍了Spring AOP中切点表达式的两种主要形式:execution和@annotation。execution表达式通过方法签名匹配,支持通配符灵活配置;@annotation则基于自定义注解实现无规则方法的切面管理。文章详细讲解了动态代理的实现原理,对比了JDK动态代理和CGLIB动态代理的适用场景及代码实现,其中JDK代理要求目标类实现接口,而CGLIB可直接代理普通类。最后列举了Spring AOP的四种实现方式,强调动态代理是AOP的核心机制。通过房产中介的代码示例,生动演示了静态代理与动

2025-08-03 22:57:10 1024 3

原创 Spring AOP_1

AOP(面向切面编程)是Spring框架的核心思想之一,用于对特定方法进行统一处理。它通过切点定义规则,在连接点处执行通知,实现代码无侵入的功能增强。Spring AOP支持五种通知类型:@Around(环绕)、@Before(前置)、@After(后置)、@AfterReturning(返回后)和@AfterThrowing(异常后)。多个切面可通过@Order注解设置优先级,数字越小优先级越高。@Before按优先级正序执行,@After按优先级倒序执行。AOP能有效减少重复代码,提高开发效率,典型应用

2025-08-03 00:25:13 942 1

原创 SpringBoot统一功能处理

拦截器是Spring提供的核心功能之一,主要用来拦截用户请求,在指定方法前后,根据业务需要执行预先设定的代码。也就是说,允许开发人员提前预定义一些逻辑,在用户的请求响应前后执行,也可以在用户请求前阻止其执行。在拦截器中,开发人员可以在应用程序中做一些通用性的操作,比如拦截前端发来的请求,判断Session中是否有登录用户的信息,如果有就放行,没有就进行拦截。1、定义拦截器2、注册配置拦截器自定义拦截器需要实现HandlerInterceptor接口,并重写方法。

2025-08-01 23:20:28 1054

原创 Mybatis_4

本篇文章介绍了MyBatis中动态SQL的进阶应用,主要包括:1.使用<foreach>标签实现批量删除操作,通过遍历集合参数构建IN条件;2.利用<include>标签实现SQL片段复用,减少重复代码;3.详细讲解了MyBatis Generator的配置和使用方法,通过自动生成模型类、Mapper接口和XML文件来提升开发效率;4.简要介绍了MyBatis-Plus的基础使用,包括依赖引入、实体类注解配置和继承BaseMapper获取常用CRUD方法。这些技术能有效简化MyBat

2025-07-28 22:12:41 905 1

原创 MyBatis_3

1、#{ }和${ }的区别就是预编译sql(占位)和即时sql(直接拼接)的区别。2、#{ }使用预编译的形式所以性能会比${ }更高绝大多数情况下,某一条sql语句可能会被反复调用执行,或者每次执行的时候只有个别的值不同(比如select的where子句值不同,insert的values值不同)。如果每次都需要上面语法解析,sql优化,sql编译等过程,效率就明显不行了。

2025-07-26 20:25:15 822 4

原创 Mybatis_2

本文介绍了MyBatis查询操作的三种字段映射方法:起别名、结果映射和自动驼峰转换,并对比了注解和XML两种开发方式。重点讲解了XML方式的配置步骤和增删改查实现,包括多表查询的示例,同时指出实际开发中应避免使用select *和多表查询可能导致的性能问题。文章还推荐了MyBatis插件来简化XML编写,并展示了结果映射的复用方法。

2025-07-24 20:44:31 1167 1

原创 Mybatis_1

MyBatis是一款优秀的持久层框架,用于简化JDBC开发。文章介绍了MyBatis的基本操作,包括查询、插入、删除和更新。通过示例演示了如何配置数据库连接、创建Mapper接口、使用注解编写SQL语句,并处理参数传递问题。特别说明了如何获取自增主键、日志配置等实用技巧。文章还列举了常见错误及解决方法,如SQL错误、配置问题和参数传递方式等,为MyBatis初学者提供了全面的入门指导。

2025-07-23 15:39:28 1043 3

原创 SpringBoot配置文件

本文介绍了计算机配置文件和SpringBoot配置文件的基本概念与使用方法。首先阐述了配置文件的作用,即将可变信息集中管理,避免硬编码问题。然后重点讲解了SpringBoot中的三种配置文件格式:properties、yml和yaml,详细比较了它们的语法特点和使用场景。文章通过实例演示了如何通过@Value和@ConfigurationProperties注解读取配置文件中的各类数据,包括基本类型、对象和集合等。同时分析了yml格式在可读性和数据结构表达方面的优势,也指出了其在复杂配置和格式要求上的局限性

2025-07-19 03:00:37 956 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除