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

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

Bean的生命周期

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

创建

初始化赋值

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

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

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

相关推荐
2501_937860942 小时前
Java多线程初阶(下)—— synchronized、volatile、wait/notify与经典并发工具
java·开发语言·jvm
牛油果子哥q2 小时前
C++内存池与对象池精讲:内存碎片、自定义分配器、对象池实现、STL allocator原理、工程落地与性能对比
java·开发语言·c++
CodeStats2 小时前
《源纹天书》第三百六十三章至第三百六十四章
java·开发语言·源纹天书
万法若空2 小时前
C/C++ 类型别名定义方式对比
java·c语言·c++
吴声子夜歌3 小时前
Java——开发中通用的方法和准则(一)
java·开发语言
mmsy10243 小时前
缓存知识点总结
java·spring·缓存
运行时异常3 小时前
【WMS 仓储系统集成 AI Agent 实战】第 3 讲:Spring Security 6 + JWT——addFilterBefore 一词之差,全站 401
java·后端
2601_962071573 小时前
如何利用SpringSecurity进行认证与授权
java·服务器·数据库
2601_962069773 小时前
SpringBoot开发——初步了解SpringBoot
java·spring boot·后端
旧梦95273 小时前
Java 单例模式:从基础到实战的完整指南
java·开发语言·单例模式