- 博客(43)
- 收藏
- 关注
原创 Vue 的响应式更新时机 + 异步录音事件回调造成状态“延后更新”或异步竞态问题(race condition)
切换时 audioUrl 已经被清空了(控制台能看到 undefined),但模板中的 v-if=“audioUrl” 依然能拿到旧值,导致 组件仍然渲染。切换后 未正确消失 MediaRecorder.onstop 异步回调重新赋值 audioUrl 在 cleanup 前解除事件绑定。在 stopRecording() 调用时,MediaRecorder 并不会立刻执行 onstop 回调。在 清理逻辑之前,必须断开或防止 MediaRecorder.onstop 的后续执行。
2025-10-14 15:35:38
422
原创 点击事件的防抖和节流
针对按钮频繁点击导致数字运算错误的问题,我设计了一个可视化解决方案,展示防抖(debounce)和节流(throttle)两种技术及其效果对比。下面是完整的实现代码:功能说明这个页面展示了三种处理按钮点击的方式:问题演示:直接处理点击事件,无任何防护措施。快速点击会导致数字计算错误和状态混乱。防抖解决方案:节流解决方案:
2025-07-28 16:46:40
631
原创 vue3 hooks的结构和作用和具体场景例子
Vue 3 Hooks 通过 Composition API 提供了强大的逻辑封装和复用能力。将组件逻辑拆分为更小、更专注的函数在多个组件之间轻松共享和复用逻辑更清晰地组织复杂组件的代码获得更好的 TypeScript 支持通过将业务逻辑提取到自定义 Hook 中,可以创建更简洁、更可维护的 Vue 应用程序。随着项目规模的增长,这种基于组合的开发模式会显示出越来越大的优势。
2025-06-10 11:58:01
695
原创 Spring Boot 中修改 HTTP 响应状态码(即 `response.status`)可以通过以下几种方式实现
在 Controller 方法或异常类上使用注解,直接指定返回的状态码。
2025-05-24 11:13:07
2040
原创 setInterval和setTimeout的区别是什么
维度setTimeout本质单次延迟执行周期性重复执行Vue 集成需手动清理,注意this绑定需更严格清理,避免内存泄漏适用场景一次性任务、防抖/节流轮询、动画、周期性状态更新最佳实践:始终在组件销毁时清理定时器,优先使用setTimeout模拟以避免误差累积。
2025-05-19 15:36:44
1298
原创 Cookie和Session的关系
若将敏感数据(如用户权限级别)直接存在 Cookie 中,可能被篡改导致越权漏洞。正确的做法是将敏感数据存储在服务器 Session 中,仅通过 Cookie 传递不可预测的随机 Session ID。在服务器集群中需使用集中式 Session 存储(如 Redis),否则会出现 Session 丢失问题。:用户登录后,前端 Vue 应用如何保持认证状态?
2025-03-27 08:13:22
400
原创 Java8里Optional类
它通过显式地表示“值可能不存在”来鼓励开发者编写更健壮的代码。,可以显著提高代码的可读性和健壮性,减少潜在的。类是一个容器对象,旨在更优雅地处理可能为。根据条件过滤值,满足条件则保留,否则返回空。(需谨慎使用,通常优先选择其他方法)。若值存在,执行传入的操作(避免显式。但需结合场景权衡,避免过度设计。值存在时返回值,否则返回默认值。延迟生成默认值,仅在需要时调用。的值,从而减少空指针异常(若原值为空,直接返回空。值不存在时抛出指定异常。对值进行转换,返回新的。Java 8 引入的。
2025-03-19 13:57:07
1113
原创 Java集合简单理解
Java 的集合框架(Java Collections Framework, JCF)是 Java 中用于存储和操作数据结构的核心库,提供了丰富的接口和实现类,用于处理不同类型的集合数据。
2025-03-16 23:54:10
482
原创 对Spring的每种事务传播级别的应用场景和失效场景
传播级别应用场景失效场景REQUIRED大多数业务方法,需要事务支持外部无事务时,内部方法也无事务需要独立事务的操作(如日志记录)可能导致外部事务锁等待或死锁SUPPORTS查询操作,不需要强制事务支持外部无事务时,内部方法也无事务不需要事务支持的操作(如外部调用)挂起外部事务,可能导致锁等待或超时MANDATORY强制要求必须在事务中执行的操作外部无事务时,抛出异常NEVER强制要求不能在事务中执行的操作外部有事务时,抛出异常NESTED需要部分回滚的复杂业务逻辑。
2025-03-13 11:17:25
1285
原创 Spring事务传播级别
REQUIRED:默认,加入或创建事务。:总是创建新事务。SUPPORTS:有事务则加入,无事务则以非事务执行。:非事务执行,挂起当前事务。MANDATORY:必须有事务,否则抛出异常。NEVER:必须无事务,否则抛出异常。NESTED:嵌套事务,支持部分回滚。根据业务需求选择合适的事务传播行为。
2025-03-13 10:55:45
255
原创 springboot的实体类字段校验的分组校验
分组校验(Group Validation)允许在不同的场景下对同一个实体类应用不同的校验规则。例如,在新增数据和更新数据时,可能需要对某些字段的校验规则进行调整。以下是分组校验的具体实现步骤:创建空的标记接口(仅用于分组标识):二、在实体类中指定分组在字段的校验注解中,通过 属性指定所属分组: 字段:仅在 分组下校验(更新时必须校验)。 字段:仅在 分组下校验(新增时必须校验)。 字段:在 和 分组下均校验(新增和更新时都校验)。三、在Controller中指定校验分组在C
2025-03-09 17:28:56
673
原创 springboot如何使用注解对实体类字段进行校验,同时怎么对校验不符合的字段自定义返回异常信息
捕获校验异常});return Map . of("code" , HttpStatus . BAD_REQUEST . value() , "message" , "参数校验失败" , "data" , errors);} }});return Map . of("code" , HttpStatus . BAD_REQUEST . value() , "message" , "参数校验失败" , "data" , errors);} }})
2025-03-09 16:31:30
496
原创 Bootstrap是什么和Bootstrap在响应式里面的具体使用方法
Bootstrap 是一个流行的开源前端框架,由 Twitter 团队开发并维护,用于快速构建响应式、移动优先的网页。它提供了一套预制的 HTML、CSS 和 JavaScript 组件(如导航栏、按钮、表单、卡片等),以及强大的工具类(Utility Classes),帮助开发者高效实现现代网页设计。通过结合网格系统、断点和预置组件,Bootstrap 能高效实现响应式设计,适合快速搭建跨设备兼容的网页。Bootstrap 的核心响应式功能基于。
2025-03-04 20:51:08
951
原创 SpringBoot自定义注解常见应用场景
除了基础的日志记录和性能监控,Spring Boot 自定义注解结合 AOP 还可以实现许多高级功能。通过灵活组合这些用法,可以显著提升代码的简洁性和可维护性,同时减少重复代码。:在接口层实现复杂的参数校验逻辑,复用校验规则(如手机号、身份证格式等)。:自动记录用户操作日志(如增删改操作),避免手动插入日志代码。:防止并发操作导致的数据不一致问题(如重复提交、库存超卖)。:在返回敏感数据(如手机号、身份证号)时自动脱敏。:在调用外部服务不稳定时,自动重试失败操作。:防止接口被高频调用(如短信验证码接口)。
2025-03-03 12:42:37
935
原创 详细介绍一下springboot自定义注解的使用方法
在Spring Boot中,自定义注解通常结合AOP(面向切面编程)实现特定功能,如日志记录、权限校验等。通过以上步骤,你可以灵活创建并应用自定义注解,增强代码的可读性和复用性。通过AOP切面拦截带有自定义注解的方法,实现具体逻辑。调用带有注解的方法,查看控制台输出。在需要增强的方法上添加自定义注解。使用Java元注解(如。
2025-03-02 21:37:15
644
原创 SpringBoot敏感数据脱敏怎么处理
使用日志框架(如Logback或Log4j2)的替换规则,避免敏感信息写入日志。通过组合以上方法,可系统性地保护敏感数据,满足GDPR等数据安全法规要求。使用加密工具(如Jasypt)对敏感字段进行加密存储。实现数据脱敏,适合接口返回敏感数据时动态处理。通过自定义注解和Jackson的。
2025-03-01 22:15:37
918
原创 MySQL 索引介绍
MySQL 中的索引类型多样,主要根据数据结构和应用场景进行分类。通过合理选择索引类型和策略,可以显著提升查询性能,但需结合实际场景权衡利弊。
2025-02-28 11:23:48
441
原创 undo log、redo log、bin log是什么
通过理解这三类日志的职责和协作机制,可以更好地设计高可用、高可靠的数据库系统。是三种关键的事务日志,分别承担不同的职责。
2025-02-27 15:46:05
715
原创 Mybatis是如何进行分页的?与Mybatis-plus的区别在哪里?
对象,在查询时传入参数,MyBatis 会在结果集返回后,在内存中手动截取指定范围的数据。:数据量大时性能差,需查询全部数据后再分页,浪费内存和网络资源。
2025-02-27 15:20:29
584
原创 vue如何调用摄像头,怎么样截取摄像头画面
在Vue中调用摄像头并截取画面可以通过浏览器的API实现。以下是一个简单的示例,展示如何在Vue组件中调用摄像头并截取画面。
2025-02-24 19:02:02
637
原创 jvm内存区域分布和调优参数,堆区栈区分别存储内容类型
堆区:存储对象实例和数组,线程共享。栈区:存储局部变量和方法调用栈帧,线程私有。调优参数:涉及堆大小、新生代大小、元空间大小、垃圾回收器和栈大小等。通过合理配置这些参数,可以优化 JVM 性能,减少内存溢出和垃圾回收问题。
2025-02-22 10:34:43
401
原创 什么是CAS?,Java里CAS怎么实现的
CAS(Compare-And-Swap)是一种用于实现多线程同步的原子操作。它通过比较内存中的值与预期值,如果相等则更新为新值,否则不进行操作。CAS操作是原子的,能够避免多线程环境下的竞争条件。CAS是一种高效的无锁同步机制,广泛应用于Java并发编程中。通过原子类,Java提供了简单易用的CAS操作,适合高并发场景。
2025-02-20 12:33:26
375
原创 kafka是什么?为什么比rocketMQ吞吐量要高
Kafka 的高吞吐量得益于其顺序写磁盘、批处理、分区并行处理等设计,而 RocketMQ 更注重事务和顺序消息,因此在吞吐量上不如 Kafka。选择时需根据具体需求决定。
2025-02-20 09:25:24
505
原创 布隆过滤器是什么,具体在Springboot对缓存穿透如何应用的
布隆过滤器(Bloom Filter)是一种空间效率高的概率型数据结构,用于判断一个元素是否属于某个集合。它可能存在误判(即判断元素存在时,实际上不存在),但绝不会漏判(即判断元素不存在时,实际上一定不存在)。布隆过滤器通过空间效率和概率判断,有效防止缓存穿透。在Spring Boot中,结合缓存机制,布隆过滤器能显著减少数据库压力,提升系统性能。
2025-02-19 10:10:37
384
原创 RocketMQ是什么,具体在springboot简单应用案例
RocketMQ是阿里巴巴开源的一款分布式消息中间件,具有高吞吐量、高可用性、低延迟等特点,广泛应用于大规模分布式系统中。它支持消息的发布/订阅模式、消息顺序传递、事务消息等功能,适用于多种场景,如异步通信、应用解耦、流量削峰等。通过以上步骤,你可以在 Spring Boot 中轻松集成 RocketMQ,实现消息的发送和接收。RocketMQ 提供了丰富的功能和灵活的配置选项,能够满足不同场景下的需求。在 Spring Boot 中集成 RocketMQ 时,配置文件(如或。
2025-02-18 10:24:08
1161
原创 Java1.8的新特性和具体使用场景
Java 8 的新特性显著提升了代码的简洁性和功能性,尤其在函数式编程、集合操作和日期时间处理方面。这些特性广泛应用于现代 Java 开发中,帮助开发者编写更高效、易维护的代码。
2025-02-16 10:11:41
848
原创 Spring是如何管理事务的,事务管理机制是什么?
接口定义了事务的隔离级别、传播行为、超时时间和只读属性等。Spring 通过事务管理器、事务定义和状态管理事务,支持声明式和编程式事务管理。声明式事务通过注解简化配置,编程式事务则提供更灵活的控制。
2025-02-15 12:23:03
428
原创 说一下对分布式锁的理解,以及分布式锁的实现?
分布式锁是分布式系统中协调资源访问的关键工具,常见的实现方式包括基于数据库、Redis和ZooKeeper。选择实现方式时需根据具体需求和系统特点进行权衡。
2025-02-14 17:38:20
681
原创 Integer和int的区别是什么?Java为什么要设计封装类?
int是基本类型,效率高,适合数值计算。Integer是封装类,提供了更多功能和灵活性,适合需要对象操作的场景。通过封装类,Java在保持基本类型高效性的同时,提供了更多的功能和灵活性。
2025-02-14 11:35:43
455
原创 Redis Cluster 和 Redis Sentinel的区别
特性高可用性是是数据分片否是扩展性有限高配置复杂度简单复杂适用场景中小规模、高可用性需求大规模、分布式存储和高可用性需求如果只需要高可用性且数据量不大,可以选择。如果需要分布式存储和横向扩展,选择。
2025-02-13 13:51:05
712
原创 Vuex仓库的数据持久化操作处理
简单易用,适合大多数场景。手动存储:灵活但需要更多代码。:功能强大,支持多种存储方式。根据项目需求选择合适的方案。
2025-02-12 15:47:59
787
原创 如果使用MySQL,有一张一亿用户的用户表该如何设计
设计一亿用户表时,需综合考虑表结构、索引、分区、存储引擎、性能优化、备份恢复、安全性和扩展性。合理设计能确保系统高效、稳定运行。
2025-02-12 09:45:14
662
原创 在多线程里购买订单业务应该考虑什么问题,应该怎么做这个业务
在多线程环境下处理订单购买业务时,需要综合考虑线程安全、库存一致性、事务管理、性能优化、幂等性、异常处理等问题。通过合理的设计和技术选型,可以确保系统在高并发场景下的稳定性和可靠性。
2025-02-11 19:08:31
911
原创 SpringBoot和Vue使用WebSocket实现实时通信
在 Spring Boot 和 Vue.js 中使用 WebSocket 可以实现前后端的实时通信。
2025-02-11 10:37:49
934
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅