答: 不是安全的。

Spring中的Bean默认是单例模式的,框架并没有对bean进行多线程的封装处理
:单例bean是指IOC容器中就只有这么一个bean,是全局共享的,有多少个线程来访问用的都是这个bean。

如果Bean是有状态的,那就需要开发人员自己来进行线程安全的保证,最简单的办法就是改变bean的作
用域 把 "singleton"改为’‘protopyte’ 这样每次请求Bean就相当于是 new Bean() 这样就可以保证线程的
安全了。

  • 有状态就是有数据存储功能。比如:一个Service里有个count的变量计数。
  • 无状态就是不会保存数据

controller、service和dao层本身并不是线程安全的,只是如果只是调用里面的方法,而且多线程调用一个实例的方法,会在内存中复制变量,这是自己的线程的工作内存,是安全的。

Dao会操作数据库Connection,Connection是带有状态的,比如说数据库事务,Spring的事务管理器
使用Threadlocal为不同线程维护了一套独立的connection副本,保证线程之间不会互相影响(Spring
是如何保证事务获取同一个Connection的)

不要在bean中声明任何有状态的实例变量或类变量,如果必须如此,那么就使用ThreadLocal把变量变
为线程私有的,如果bean的实例变量或类变量需要在多个线程之间共享,那么就只能使用synchronized、lock、CAS等这些实现线程同步的方法了。

Spring框架中的单例Bean是线程安全的么?相关推荐

  1. Spring框架中的单例Bean是线程安全的吗?

    首先直接给出答案:不是线程安全的 一.分析问题 证明不是线程安全的案例如下: public class Student {private String stuName;public String re ...

  2. Spring框架中的单例Bean是线程安全的吗

    Sp

  3. spring框架中的单例Beans是线程安全的么?

    看到这样一个问题:spring框架中的单例Beans是线程安全的么? Spring框架并没有对单例bean进行任何多线程的封装处理.关于单例bean的线程安全和并发问题需要开发者自行去搞定.但实际上, ...

  4. Spring框架中的单例Beans是线程安全的么

    看到这样一个问题:Spring框架中的单例Beans是线程安全的么? Spring框架并没有对单例bean进行任何多线程的封装处理.关于单例bean的线程安全和并发问题需要开发者自行去搞定.但实际上, ...

  5. Spring 框架中的单例Beans 是线程安全的么?

    Spring 框架并没有对单例bean 进行任何多线程的封装处理.关于单例bean 的线程安全和并发问题需要开发者自行去搞定.但实际上,大部分的Spring bean 并没有可变的状态(比如Servi ...

  6. Spring源码 - 从缓存中获取单例Bean

    # Spring源码 - 从缓存中获取单例Bean Spring版本:Spring 5.3.13-release # 1.从缓存中获取单例Bean 单实例Bean在Spring的同一个容器中只会创建一 ...

  7. Spring容器中 singleton 单例、 prototype多例

    项目开发中通常会使用:singleton 单例. prototype多例 Singleton: 在一个spring容器中,对象只有一个实例.(默认值) Prototype: 在一个spring容器中, ...

  8. 面试官:Spring创建好的单例对象存在线程安全问题吗?

    点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/jdk_wangtaida/ article/details/88738228 前言 这是我在一次面试中被问到过的问题,但是当时 ...

  9. Spring IOC 容器源码分析 - 创建单例 bean 的过程

    1. 简介 在上一篇文章中,我比较详细的分析了获取 bean 的方法,也就是getBean(String)的实现逻辑.对于已实例化好的单例 bean,getBean(String) 方法并不会再一次去 ...

最新文章

  1. Windows Phone开发(19):三维透视效果
  2. linux socket中 send recv函数的 flags参数
  3. leetcode--200. 岛屿的个数
  4. 探索.NET平台中的SIMD内在函数Vector
  5. ubuntu 16.04 安装mysql
  6. 操作系统进程调度先来先服务FCFS
  7. linux子进程父进程例子,linux 子进程访问父进程
  8. DAS 2020 诚征论文及赞助!
  9. 怎么把4张图片合成一张_暴露年龄的20张图片,最后一张是什么?求解
  10. openURL的使用(iOS调用系统电话、浏览器、地图、邮件等)
  11. ChainIDE 3. 使用truffle部署合约
  12. android按钮点击后闪退_iphone闪退是什么原因?
  13. 服务器上找不到iis,Web服务器打开IIS7管理器看不到站点解决方法
  14. Python获取微信好友地址以及性别并生成可视化图表
  15. 多媒体前端技术入门指南
  16. 软件维护类型的基础知识
  17. easysat源码解读(一)
  18. ROS2进阶:安装与初体验(附choco介绍)
  19. 小鸟云服务器如何通过本地安全策略阻止IP访问?
  20. MATLAB 2019 快速入门教程(官方手册翻译)(1/4)

热门文章

  1. 制作卡通(动漫风)效果
  2. 从k8s集群主节点数量为什么是奇数来聊聊分布式系统
  3. 毕业论文选题基于Web网站或Android APP的设计与实现
  4. eclipse中输入中文为繁体
  5. 【多人会议功能】uniapp - 微信小程序 - 腾讯云
  6. 2021-08-05SpringCloud升级之路2020.0.x版-5.所有项目的parent与spring-framework-common说明
  7. Ajax vs Willem II,Ajax is bedrijfsongeval weer te boven
  8. 程序员技术面常用知识点
  9. 使用Tableau进行基础图表制作
  10. 如何处理设计的条码与打印出来的不一样的问题