- 博客(139)
- 收藏
- 关注
原创 Vue3 进阶核心:高级响应式工具 + 特殊内置组件核心解析
这是Vue3基础语法外的进阶工具集合:包含shallowRef、readonly等高级响应式API,可实现浅响应、只读等精细化响应式控制;也涵盖Teleport、Suspense等特殊内置组件,解决跨层级渲染、异步依赖等待等场景。这些是Vue3进阶开发的实用装备,能大幅提升开发灵活性与场景适配力。
2025-12-31 20:40:32
935
原创 Vue3 响应式难哭?这份笔记把 ref/reactive 讲得比奶茶还甜
本文介绍了Vue3的基础使用和核心响应式概念。首先讲解基础三剑客:index.html引入main.ts,main.ts创建Vue实例并挂载根组件App.vue。重点解析了响应式系统的ref和reactive:ref通过RefImpl对象实现基础类型响应式,reactive通过Proxy代理对象实现响应式,并详细说明了避免解构和重新赋值导致响应式丢失的方法。还介绍了computed计算属性和watch监听器的使用场景,包括基础类型监听、对象属性监听、ref对象深度监听以及reactive对象监听的不同实现方
2025-12-30 18:52:26
986
原创 Vue3 干货暴击!核心语法 + 路由 + Pinia + 组件通信的浓缩笔记
本文介绍了Vue3的核心知识点:1. 项目创建与环境配置;2. 组合式API与选项式API对比;3. setup语法糖的使用;4. ref与reactive响应式数据;5. computed计算属性;6. watch监听器;7. 组件生命周期;8. 自定义Hooks封装复用逻辑;9. Vue Router路由配置与编程式导航;10. 组件间通信方式(props/emit)。重点讲解了Vue3的响应式系统、组件化开发思想以及路由管理的最佳实践,帮助开发者快速掌握Vue3开发要点。
2025-12-30 15:45:32
1134
原创 一个“天机学堂”项目,究竟能覆盖多少Java后端知识点?
天机学堂项目复盘显示该项目虽已终结但仍具优化空间。作为微服务项目,其开发过程涉及Mybatis-Plus应用、Jenkins部署等技术实践,包含课程管理、互动问答、积分系统等核心功能模块。项目采用分支管理模式(master参考分支与lesson-init开发分支),通过任务驱动方式培养独立开发能力。技术亮点包括BitMap实现签到功能、秒杀场景解决方案等,整体架构完整适合练手,既提供了系统的业务实现指导,也保留了需要进一步梳理的问题空间,具有较高的学习价值。
2025-12-26 20:38:24
824
原创 天机学堂-优惠券领取功能-day10(八)
本文介绍了优惠券系统的两个核心接口:查询发放中的优惠券列表和手动领取优惠券功能。查询接口通过GET请求返回当前可领取的优惠券信息,包含优惠券ID、名称、折扣条件等字段,并判断用户是否已领取。领取接口采用POST请求,通过Redis+Lua脚本实现原子操作校验领取条件,包括时间范围、个人领取上限和库存限制,并通过事务确保数据一致性。系统采用多层校验机制(Redis预校验+数据库兜底)来保证优惠券发放的准确性和可靠性。
2025-12-17 19:31:14
295
原创 天机学堂-优惠券功能-day09(七)
本文摘要介绍了优惠券管理接口的实现,主要包括新增、修改和分页查询优惠券功能。新增优惠券支持限定使用范围,需保存优惠券及范围数据;修改优惠券采用PUT请求更新信息;分页查询可根据状态、名称等条件筛选,并按创建时间排序返回结果。接口采用标准的RESTful风格设计,包含请求参数、返回值等详细说明。
2025-12-15 21:14:45
758
原创 天机学堂-排行榜功能-day08(六)
本文介绍了积分排行榜系统的接口设计与实现,主要包括三个功能模块:1) 查询赛季列表的GET接口,返回赛季ID、名称及时间范围;2) 实时积分记录功能,通过Redis的Zset结构存储用户积分并支持上限校验;3) 学霸积分排行榜查询,支持分页获取当前/历史赛季排名数据,包含用户排名、积分和姓名信息。系统采用Spring Boot框架实现,通过Redis高效处理实时排名,并提供了完整的接口文档说明请求路径、参数和返回值格式。
2025-12-14 16:27:02
728
原创 天机学堂-积分功能-day07(五)
本文介绍了基于Redis实现的签到系统接口设计,主要包括两个功能:1)签到功能:通过POST请求/sign-records路径实现用户签到,返回连续签到天数和获取积分;2)查询签到记录:通过GET请求/sign-records路径获取本月签到情况。系统使用Redis的位图数据结构存储签到记录,通过bitField命令统计连续签到天数和本月签到天数,并根据不同签到天数给予相应积分奖励。关键实现包括防止重复签到、位运算统计签到天数等逻辑。
2025-12-12 10:34:02
260
原创 天机学堂 - 点赞功能-day06(四)
本文介绍了点赞功能的接口设计与实现方案。系统提供了点赞/取消点赞和批量查询点赞状态两个核心接口,采用Redis缓存优化点赞操作。点赞接口通过POST请求接收业务ID、业务类型和点赞状态参数,实现点赞记录的增删操作,并通过RabbitMQ异步更新点赞数统计。批量查询接口通过GET请求返回用户已点赞的业务ID集合。改进方案引入Redis缓存层提升性能,同时保持与数据库和消息队列的协同工作。整体设计实现了点赞功能的高效处理和数据一致性保障。
2025-12-10 14:33:23
834
原创 天机学堂-课程课表功能day234(二)
这种借助MQ进行异步调用的方式,可以一定程度的降低耦合度,适用于业务服务复杂并发程度较高,但是对一致性没有那么极致的要求,同时还需要可靠性的保障。
2025-12-07 20:07:54
966
原创 天机学堂 - 互动问答功能-day05(三)
本文介绍了课程互动问题的四个核心功能接口实现:1)新增互动问题接口,支持用户公开或匿名提问并上传图片;2)删除功能,通过ID校验用户权限后执行删除;3)修改功能,允许用户更新问题标题、描述和匿名状态;4)分页查询接口(未展示具体实现)。技术实现采用Spring Boot框架,通过Controller-Service分层架构处理业务逻辑,包含参数校验、权限验证和数据持久化操作。每个接口都明确了请求方式、路径和参数格式,采用DTO进行数据传输,确保数据安全性和操作合法性。
2025-12-07 20:06:41
824
原创 天机学堂-自定义部署(一)
本文摘要: 反向代理流程:通过Nginx实现域名到后端服务的请求转发,配置包括hosts文件修改、server块匹配和proxy_pass设置。 前端部署:使用npm打包生成dist目录,通过Nginx配置静态文件服务,支持前端路由。 服务配置:包含Git、Jenkins、RabbitMQ等服务的账号密码及访问信息,以及部署过程中的常见问题解决方案。 问题处理:包括Jenkins权限不足、Nacos访问错误等问题的排查与修复方法。 环境配置:详细说明了Docker容器部署、IP修改、服务启动等操作步骤,确保
2025-11-28 09:40:02
1082
2
原创 三台服务器,一套流水线:如何实现无缝自动化部署?
GitLab是一款开源DevOps平台,提供代码托管、CI/CD等全流程解决方案。摘要介绍了两种安装方式:1)基于Linux系统,通过Yum安装依赖和GitLab包,配置防火墙和端口;2)基于Docker环境,通过容器部署并配置数据卷挂载。文章还涵盖了GitLab的基本使用,包括创建组/项目、用户权限管理、代码提交,以及与Jenkins的集成方法。Jenkins部分详细说明了Docker部署流程、目录挂载和端口配置,并介绍了如何配置GitLab项目集成和权限管理。
2025-11-23 17:17:31
976
原创 你的文件还躺在硬盘里?试试MinIO,打造高性能私有云盘!
本文介绍了MinIO对象存储的基础概念、环境部署及与SpringBoot项目的集成开发。主要内容包括:1)MinIO的基本概念和元数据组成;2)Linux系统下MinIO的安装配置及Docker容器化部署方法;3)SpringBoot项目中MinIO客户端的配置与两种文件上传方式(内存流式传输适用于小文件,磁盘文件读取支持大文件分片上传)。通过代码示例详细说明了存储桶管理、文件上传等核心API的使用,并提供了文件大小自动判断的分层上传实现方案。
2025-11-14 21:43:22
961
原创 EasyExcel 踩坑指南:这些细节不注意,上线必出问题
Data@ExcelProperty(value = = "姓名", index = 0)@ExcelProperty(value = "年龄", index = 1)@ExcelProperty(value = "性别", index = 2)@ExcelProperty(value = "地址", index = 3)@ExcelProperty(value = "编码值", index = 4)/*** Excel文件解析并插入数据库* (数据量较小)10000-1.5s。
2025-11-08 20:50:19
1048
原创 开发神器Mybatis-Plus:少写代码,多摸鱼!
1 TableName这个注解是用于指定表名的,如果说数据库当中的表名与类名相同则不需要指定。2 TableField这个注解是用于指定类的成员变量与字段之间的映射关系,如果说与字段相同则不需要指定。3 TableFeild注解当中填写exist = false是当这个成员变量在数据库表中没有对应的字段时。4 @TableId注解主要是针对主键,如果说主键是id则不需要标注否则需要将这个主键表上指明主键@Data/*** 主键 姓名*//*** 年龄*//*** 性别*/
2025-11-06 19:34:21
528
原创 效率翻倍:在IDEA里玩转Git,这些可视化操作你早该掌握了
本文介绍了基于Git的团队协作开发流程,分为三个主要步骤:1)统一搭建中央仓库并克隆到本地;2)基于分支独立开发功能;3)通过Pull Request/Merge Request申请代码合并。详细说明了如何创建开发分支、提交代码更新,以及最终将个人分支合并到项目开发分支的具体操作方法,包括命令行操作和IDE集成操作两种方式。重点强调了分支隔离开发、定期提交、代码合并审核等规范,为团队协作开发提供了清晰的操作指南。
2025-09-01 15:32:51
877
原创 Spring Cloud Alibaba Seata 分布式事务(六)
Seata的架构包括三个核心角色TM = 事务发起人,RM = 事务执行者,TC = 总裁判/协调者。TC (Transaction Coordinator) - 事务协调器:维护全局和分支事务的状态,驱动全局事务提交或回滚。TM (Transaction Manager) - 事务管理器:定义全局事务的范围,开始全局事务、提交或回滚全局事务。RM (Resource Manager) - 资源管理器:管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
2025-08-31 19:07:19
820
原创 Spring Cloud Gateway 网关(五)
本文介绍了Spring Cloud Gateway网关的实现方案。通过创建网关模块并配置Nacos注册中心,实现服务路由和负载均衡。文章详细说明了如何配置路由规则(如Path匹配)、使用RewritePath过滤器简化请求路径、以及添加全局响应头等操作。同时对比了ReactiveServer与ServerMVC两种网关实现,并解决了远程调用中的版本兼容问题。该方案通过统一入口实现了服务的动态路由和请求转发,简化了微服务架构中的API调用。
2025-08-30 16:29:53
1137
1
原创 SpringCloud Alibaba Sentinel 流量治理、熔断限流(四)
本文介绍了Sentinel流量控制框架的核心概念与使用方法。主要内容包括:1.Sentinel的安装配置流程,包括jar包下载和本地项目配置;2.异常处理的优先级机制,分为方法级兜底、全局拦截器和直接抛出异常三个层级;3.四种异常处理方式:全局拦截器、方法级blockHandler、远程调用fallback和SphU硬编码;4.详细解析了流控规则(单机/集群模式)、熔断规则(三状态机模型)和热点规则等常用控制规则,重点阐述了它们的工作原理和参数配置。文章通过代码示例展示了如何在项目中实现各种限流和熔断策略,
2025-08-30 12:36:09
865
原创 SpringCloud OpenFeign 远程调用(RPC)(三)
本文介绍了Spring Cloud中使用Feign实现远程调用的步骤:1.添加openfeign依赖;2.启动类添加@EnableFeignClients注解;3.定义FeignClient接口,使用@FeignClient指定服务名,并在方法上添加请求映射注解;4.通过自动注入接口实例进行远程调用。示例展示了从商品服务获取商品信息的完整流程,包括接口定义和业务调用方式。
2025-08-28 19:50:08
518
1
原创 SpringCloud Alibaba Nacos 注册中心/配置中心(二)
摘要:本文介绍了Nacos的安装与配置问题解决方案,包括修改配置文件避免使用默认域名jmenv.tbsite.net的方法。详细说明了服务注册与发现、负载均衡的实现方式,以及配置中心的使用,包括动态刷新和多环境配置管理。文章提供了完整的代码示例和配置方法,帮助开发者在本地环境中正确使用Nacos进行服务治理和配置管理。
2025-08-28 16:56:12
657
原创 SpringCloud 分布式系统 基础概念(一)
本文介绍了微服务架构的基础概念和SpringBoot快速构建微服务的实践方法。主要内容包括:1)架构基础概念,如单体/集群/分布式架构、微服务组件(Nacos注册中心、Gateway网关、OpenFeign远程调用等);2)核心问题解决方案,如负载均衡、服务熔断、分布式事务;3)项目构建实践,包括版本选择、Maven父项目配置、子模块创建、依赖管理等。文章通过详细的XML配置示例,展示了如何搭建基于SpringCloudAlibaba的微服务框架结构。
2025-08-28 16:31:15
475
原创 别再死记硬背!MySQL面试的高分密码,都在这份深度解析里
MySQL索引主要分为B+树、HASH、FULL-text等类型,其中B+树索引支持范围查询且I/O效率更高。聚簇索引优先使用主键,无主键时选择首个非空字段或隐式ID。二级索引查询需回表操作,建议通过覆盖索引(包含所有查询字段)和索引下推(存储引擎层过滤)减少回表。设计联合索引时应将等值查询和高频过滤列前置,范围查询列后置,并尽量包含所有查询字段。优化策略包括使用主键查询、避免SELECT *、利用覆盖索引和索引下推技术来提升查询性能。
2025-07-05 18:36:24
1179
1
原创 RuoYi 若依实战讲解
文章摘要:系统通过菜单管理模块创建统计菜单及二级页面菜单,并调整课程管理功能。随后建立用户角色"小智"并关联"科研人员"角色,为其配置课程管理与统计分析菜单的访问权限,实现了基于角色的权限控制机制。这一流程涵盖了菜单创建、角色定义和权限分配三个关键步骤。
2025-07-05 12:16:53
1139
原创 RuoYi 环境搭建
RuoYi-Vue前后端分离权限管理系统部署指南:后端需配置MySQL(修改druid.yml数据库连接)和Redis(application.yml),启动前需导入数据库表文件;前端Vue3版本通过Git克隆后,使用npm安装依赖并运行dev命令启动(默认81端口)。系统基于SpringBoot+Vue3技术栈,包含用户权限管理等企业级功能模块。
2025-07-04 09:48:30
488
原创 MYSQL数据库(九)MVCC-多版本并发控制
MVCC(多版本并发控制)通过维护数据的历史版本实现并发访问,核心由隐藏字段(DB_TRX_ID、DB_ROLL_PTR)、UndoLog版本链和ReadView组成。ReadView包含活跃事务ID列表等字段,用于判断数据可见性:若事务ID小于最小活跃ID或等于创建者ID则可见,否则需检查版本链。隔离级别影响ReadView生成时机:RC每次查询新建(导致不可重复读),RR仅首次生成(保证可重复读)。该机制通过非阻塞读取历史版本,有效提升数据库并发性能。
2025-07-04 09:48:15
1190
原创 JVM 类加载过程/对象创建过程/双亲委派机制/垃圾回收机制
类加载的过程是指将类的.class文件加载到JVM内存当中,并对数据进行处理,最终形成可以被JVM使用的Java的类型的过程。文件 -> 读到内存(方法区) -> 在堆里创建。常量(编译期可知)则在此阶段直接赋指定值。文件是否合法、安全。(内存地址/偏移量)。
2025-06-15 14:33:39
1001
原创 JUC并发编程(八)JUC工具包
概念:全称是AbstractQueueSynchroizer,是阻塞式锁和相关的同步器工具的框架。1 原子状态管理:存在一个被volatile修饰的状态变量2 CLH变体队列:核心数据结构双向链表可以实现公平锁的线程排队。3 线程阻塞/唤醒机制:条件变量Conditional,基于LockSupport.park()/unpark()实现高效线程挂起与唤醒。实现:自定义不可重入锁二 ReentrantLock原理JUC并发编程(三)死锁/活锁/饥饿/ReenTrantLock基础使用-CSD
2025-06-12 08:55:18
1129
原创 JUC并发编程(七)这就是线程池
线程池默认初始状态是空池,是懒加载,此时不会占用系统资源,最大线程数是包括核心线程和救急线程,当任务提交时,判断当前线程是否达到核心线程数,没有达到就创建一个核心线程去执行任务(优先创建而不是使用线程池当中的now<core),当当前线程数达到核心线程数,会尝试进入队列,没满就在队列当中等待空闲线程,如果满了就会用到这里的救急线程,先判断当前线程数是否达到最大线程数,没达到最大线程就创建救急线程去执行任务,达到最大线程数就触发拒绝策略。后面创建的救急线程存在最大空闲时间当任务执行结束后,空闲时
2025-06-10 08:24:37
1076
1
原创 JUC并发编程(六)CAS无锁实现/原子整数/原子引用/原子数组/字段更新
在调用compareandSet时,会将这个读取值与现在实际的值进行对比如果出现不同说明在这期间有其他线程对值进行修改,这样的话将会重试,再次读取,再次比较,再次判断以达到最终的效果。的类,它提供了直接操作内存、绕过 JVM 安全机制的能力,被称为 "Java 的后门"。无锁情况下,及时重试失败线程始终在高速运行,而synchroized会让线程在没有获得锁的时候,发生上下文切换,进入阻塞。利用字段更新器,可以针对对象的某个域进行原子操作,只能配合volatile修饰的字段使用,否则会出现异常。
2025-06-08 14:41:15
1061
原创 JUC并发编程(五)volatile/可见性/原子性/有序性->JMM(Java内存模型)
volatile 解决的是 "一个线程写,其他线程读" 时的有序性和可见性问题,而解决 "多个线程同时写" 需要更强的同步机制。
2025-06-07 16:49:40
1212
原创 JUC并发编程(四)常见模式
两阶段终止模式(Two-Phase Termination Pattern)是一种多线程编程中安全终止线程的设计模式。它的核心思想是:在终止线程前,先发出终止请求(第一阶段),然后线程在完成必要清理工作后再真正终止(第二阶段)。这种模式避免了直接强制终止线程导致的资源泄露、数据不一致等问题
2025-06-07 16:49:35
1297
原创 JUC并发编程(三)死锁/活锁/饥饿/ReenTrantLock基础使用
死锁是并发编程中一种常见的系统状态,指,若无外力干预,这些线程将无限期阻塞下去。网上看见一个例子(A等B,B等A)面试官问:跟我说说什么是死锁?回答:你给我offer我就跟你说。面试官:你说我才能给你offer。......二者一直僵持下去.....
2025-06-06 09:53:08
1208
1
原创 JUC并发编程(二)Monitor/自旋/轻量级/锁膨胀/wait/notify/锁消除
一段代码块内如果存在对共享资源的多线程读写操作,撑这段代码区为临界区。多个线程在临界区内执行,由于代码的执行序列不同而导致结果无法预测,称之为发生了竞态条件为了避免临界区的竞态条件发生,有多种手段可以达到目的。
2025-06-04 20:50:46
1239
原创 JUC并发编程(一)进程/并发/同步/栈帧/上下文切换/创建线程的方式/join/yield/interrupt/sleep
1 进程(Process):一个正在运行的程序,操作系统分配资源的基本单位。拥有独立的内存空间。2 线程(Thread):一个进程内部的一条独立执行的路径,CPU调度的基本单位,共享所处进程的内存空间和资源。
2025-06-02 16:28:46
1047
原创 #RabbitMQ# 消息队列进阶
在消息队列中,是指确保消息在三者之间传输时,不会因系统故障、网络问题或程序错误而丢失或重复处理。其核心目标是保证消息从发送到最终消费的。
2025-05-27 19:38:42
1565
1
原创 #RabbitMQ# 消息队列入门
核心概念总结角色作用类比Publisher发送消息的程序寄信人Exchange按规则将消息分发到队列邮局分拣员Queue存储消息的容器邮箱Consumer从队列取消息并处理的程序收信人隔离不同业务的消息环境(如测试、生产)邮局内的独立部门。
2025-05-25 15:26:44
1032
原创 环境配置到头秃?是时候用 Docker 拯救你的发际线了
命令 → Daemon 检查本地是否存在 Redis 镜像(若不存在则自动拉取)→ 基于镜像创建并启动容器 → Redis 应用运行在隔离的容器环境中(轻量级虚拟化,共享主机内核)。命令 → 命令发送至 Docker Daemon → Daemon 连接 Docker 镜像仓库(如 Docker Hub),下载 Redis 镜像到本地主机。将镜像上传至镜像仓库 → 其他用户可通过相同流程拉取并运行该镜像。命令将应用打包为镜像(依赖 Dockerfile 定义环境)。:在 Docker CLI 中执行。
2025-05-24 16:42:18
1468
原创 #Redis缓存篇#(七)分布式缓存
RDB持久化(Redis Database Backup file)Redis数据备份文件,也被叫做Redis数据快照。简单来说就是把内存中所有数据都记录到磁盘当中。当Redis实例故障重启后,从磁盘当中读取快照文件,恢复数据。其他的一些配置参数(是否压缩/修改保存文件名称/文件保存的目录)bgsave开始时会fork主进程得到子进程,子进程共享主进程的内存数据。完成fork后读取内存数据并写入RDB文件。通过配置文件自动触发(如)或手动执行BGSAVE命令。
2025-05-21 18:24:53
998
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅