当前位置: 首页 > news >正文

27.Spring如何避免在并发下获取不完整的Bean?

Spring如何避免在并发下获取不完整的Bean?

1、为什么获取不到完整的Bean?

我们知道, 如果spring容器已经加载完了, 那么肯定所有bean都是完整的了, 但如果, spring没有加载完, 在加载的过程中, 构建bean就有可能出现不完整bean的情况

2、如何解决读取到不完整bean的问题.

其实, 之所以出现这样的问题, 原因就在于, 第一个bean还没有被创建完, 第二个bean就开始了. 这是典型的并发问题. 针对这个问题, 其实,我们加锁就可以了,解决方案如下:

双重检查锁
为什么一级缓存不加到锁里面:性能:避免已经创建好的Bean阻塞等待

代码演示

第一: 将整个创建过程加一把锁

/*** 获取bean, 根据beanName获取*/public static Object getBean(String beanName) throws
http://www.lryc.cn/news/249966.html

相关文章:

  • 浅析SD-WAN企业组网部署中简化网络运维的关键技术
  • 【Rust】快速教程——自定义类型、数字转枚举、Cargo运行
  • python 实现 AIGC 大语言模型中的概率论:生日相同问题的代码场景模拟
  • SD-WAN组网中的CPE及云服务CPE部署方法
  • 理解BatchNormalization层的作用
  • uniapp实现文件预览过程
  • 深度学习-学习笔记记录
  • 程序员养生之道:延寿不忘初心——延寿必备
  • 使用Docker安装部署Swagger Editor并远程访问编辑API文档
  • Nacos 2.X核心架构源码剖析
  • C语言--每日选择题--Day31
  • chrome vue devTools安装
  • Spring Security 6.x 系列(7)—— 源码分析之Builder设计模式
  • PyQt6 中自定义浮点型滑块类
  • 笔记,B+树
  • 代码随想录刷题题Day2
  • 【JAVA面向对象编程】--- 探索子类如何继承父类
  • 从浏览器控制台发送get,post请求
  • 海外问卷调查怎么批量做?可以用指纹浏览器吗?
  • HarmonyOS 位置服务开发指南
  • ThinkPHP6学生选课管理系统
  • uniapp如何与原生应用进行混合开发?
  • Csharp(C#)无标题栏窗体拖动代码
  • 李宏毅2020机器学习课程笔记(二)- 深度学习
  • 解决电脑蓝屏问题:SYSTEM_THREAD_EXCEPTION_NOT_HANDLED,回到系统还原点
  • connectivity_plus 安卓build的时候报错
  • 系统部署安装-Centos7-Kafka
  • 94.STM32外部中断
  • 【Linux】快速上手自动化构建工具make/makefile
  • HarmonyOS