面试八股——Spring框架——Bean

Bean是单例的,且不是线程安全的。例子如下:下述的类变量是可修改的,当多用户访问时会造成成员变量的不一致。

Bean的生命周期

Bean对象的创建(构造+初始化赋值)

创建

初始化赋值

Bean的循环引用(又叫循环依赖)

循环依赖过程:
解决办法------三级缓存

第一级缓存存储已经完全创建好的单例Bean,第二级缓存存储还没有完全创建好的Bean对象,如只进行了构造但没有进行赋值。三级缓存创建的是ObjectFactory,即对象工厂,用于创建某个对象的。

相关推荐
leonkay12 分钟前
C# 锁机制——【2】深入原理
开发语言·后端·spring·c#·个人开发
lee_curry16 分钟前
AI Agent 工程师完整学习路线(面向生产级项目与面试)
人工智能·学习·ai·面试·agent
血小板要健康22 分钟前
链表 阶段算法总结
java·数据结构·笔记·算法·leetcode·链表
江湖十年22 分钟前
在 Go 中使用 dyno 包处理动态对象
后端·面试·go
坐吃山猪22 分钟前
【多线程】CompletableFuture使用
java·开发语言·多线程
m0_5873830040 分钟前
点餐预约核销系统的架构脉络
java·架构·系统架构·需求分析
代码方舟1 小时前
O2O二手车交易平台B端车商管理后台:基于天远车信盟出险构建自动化车况评估网关
java·运维·人工智能·自动化
爱学堂IT分享1 小时前
图灵Java互联网架构师六期
java·开发语言
坐吃山猪1 小时前
【多线程】Semaphore使用
java·数据库·oracle·多线程
数智启示录1 小时前
PostgreSQL 内存调优实战(第 12 篇):work_mem 只调大 64 倍,峰值为什么远不止 64 倍
运维·数据库·经验分享·postgresql·面试