专栏名称: 编程技术进阶
编程技术进阶,专注分享Java技术干货,包括多线程、架构设计、微服务、消息队列、Git、面试题、程序员攻略、JVM、Spring Boot、Spring Cloud、Dubbo、Zookeeper、Redis等。
TodayRss-海外RSS稳定源
目录
今天看啥  ›  专栏  ›  编程技术进阶

京东二面:SpringBean默认是单例的,高并发情况下,如何保证并发安全性?

编程技术进阶  · 公众号  ·  · 2025-07-13 17:30
    

主要观点总结

本文讨论了Spring的bean默认单例模式下,成员变量导致的并发不安全的问题,并提供了多种解决方案。

关键观点总结

关键观点1: 问题提出

Spring的bean默认都是单例的,在某些情况下,单例是并发不安全的。以Controller为例,多个请求可能会访问同一个单例的Controller对象,并对成员变量进行修改,导致互相影响。

关键观点2: 解决方案

为了解决这个问题,可以采取以下措施:1. 将bean的作用域设置为原型(prototype)或请求(request);2. 使用ThreadLocal实现线程隔离;3. 尽量避免使用成员变量,使用局部变量替代;4. 使用并发安全的类,如ConcurrentHashMap等;5. 在分布式或微服务中,使用分布式缓存中间件如Redis等保证并发安全。

关键观点3: 补充说明

Spring bean的作用域有singleton、prototype、request、session和global session。同时提到了文章版权声明和推荐资源链接。


免责声明:本文内容摘要由平台算法生成,仅为信息导航参考,不代表原文立场或观点。 原文内容版权归原作者所有,如您为原作者并希望删除该摘要或链接,请通过 【版权申诉通道】联系我们处理。

原文地址:访问原文地址
总结与预览地址:访问总结与预览
文章地址: 访问文章快照