- 博客(7)
- 收藏
- 关注
原创 Redis缓存实战:解决穿透、击穿与雪崩的三大方案
Redis缓存实战:解决穿透、击穿与雪崩问题 本文针对高并发系统中的三大缓存问题提出了解决方案:1)缓存穿透采用空对象缓存策略;2)缓存击穿通过互斥锁和逻辑过期两种方式解决;3)缓存雪崩通过随机TTL避免集中失效。文章提供了基于Spring Boot和Redis的完整代码实现,包括基础配置、空值处理、分布式锁控制以及逻辑过期方案。每种方案都包含详细流程图和代码示例,帮助开发者有效应对缓存问题,保障系统稳定性。
2025-10-20 15:02:26
713
原创 Cookie与Session详解:原理、区别与应用场景
本文详解Cookie与Session的工作原理及区别。Cookie是存储在浏览器的小型文本数据(≤4KB),用于身份跟踪;Session则是服务器端的会话数据,通过Session ID关联请求。两者核心区别在于存储位置(客户端/服务端)和安全性(Session更适合敏感数据)。文章还分析了常见安全问题(XSS攻击、Session劫持)的解决方案,并介绍了现代替代方案如JWT和分布式Session。最后指出:Cookie适合非敏感数据,Session适合敏感数据,JWT等无状态方案正逐渐流行,但传统Sessi
2025-10-17 20:37:29
762
原创 详解Spring IOC容器和依赖注入(DI)
本文深入解析了Spring框架的核心概念——IOC容器和依赖注入(DI)。主要内容包括:1)传统开发与IOC模式的对比,展示IOC通过解耦提升代码可维护性;2)Spring提供的两种IOC容器实现;3)Bean的多种作用域配置;4)依赖注入的三种方式(构造器注入、Setter注入和字段注入)及其最佳实践;5)处理多个相同类型Bean的解决方案(@Primary、@Qualifier和@Resource注解)。文章通过代码示例和图表,系统性地介绍了Spring依赖管理的核心机制和使用建议。
2025-10-10 15:30:57
494
原创 ThreadLocal 和 Thread 的区别
ThreadLocal与Thread是Java多线程编程中的两个核心概念,但功能截然不同:Thread是并发执行的基本单元,而ThreadLocal用于实现线程间的数据隔离。ThreadLocal通过在Thread内部的ThreadLocalMap中存储独立副本,保证每个线程访问自己的数据(如Spring事务、用户会话),天生线程安全但需手动remove避免内存泄漏。Thread则负责实际并发任务执行(如异步处理),需要同步机制保证线程安全。两者常配合使用,如在Web服务器中用Thread处理请求,Thre
2025-10-08 23:21:57
622
原创 ThreadLocal 详解
本文详细介绍了Java中的ThreadLocal机制。ThreadLocal通过线程封闭技术,为每个线程提供变量独立副本,避免多线程竞争。核心原理是每个Thread内部维护ThreadLocalMap,以ThreadLocal为key存储变量值。文章分析了set()和get()方法实现,并指出存在内存泄漏风险(由于key是弱引用而value是强引用),强调必须手动remove()清理。典型应用场景包括Spring事务管理、线程安全的SimpleDateFormat和用户上下文传递。相比synchronize
2025-10-08 23:04:32
576
2
原创 Spring Bean的作用域与第三方Bean管理
本文介绍了Spring框架中Bean管理的两个重要方面:作用域配置和第三方Bean管理。首先讲解了Bean的五种作用域,重点说明了单例(singleton)和原型(prototype)的区别,并通过代码示例演示了如何通过@Scope注解配置作用域。然后详细介绍了如何通过@Bean注解管理第三方依赖的Bean,推荐使用专门的配置类进行管理,并展示了自动装配依赖的方式。文章强调实际开发中大部分Bean使用默认的单例作用域即可,同时提供了测试代码帮助理解。
2025-10-08 01:09:08
706
原创 使用Java动态代理实现方法运行时间计算
本文介绍了使用Java动态代理技术实现方法运行时间统计的方案。通过定义业务接口、实现类,并创建动态代理工具类,可以在不修改原始代码的情况下,统一添加方法计时功能。该方案具有非侵入性、集中管理和灵活扩展等优势,体现了AOP编程思想。文章还展示了示例输出结果,并启发读者思考动态代理在其他横切关注点(如日志、安全等)上的应用可能。这种技术为性能监控提供了一种优雅的解决方案。
2025-10-08 00:43:13
286
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅