栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

如何优雅的回答Spring循环依赖

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何优雅的回答Spring循环依赖

核心点
  1. spring中Bean的实例化过程是(BeanDefintion)
  2. Bean的生命周期(如果没有这么复杂的生命周期的话,spring循环依赖不存在)
  3. Spring使用三个Map解决循环依赖
详细回答

从spring framework 整个体系而言的话,spring的bean是由BeanDefinition来的,就是我们在Spring当中有个建模的一个类:BeanDefintion,Spring的Ban有一系列复杂的生命周期,…详细的一步步回答生命周期阶段…,(首先Spring容器启动,启动完了之后,会做一个简单的扫描,扫描完了之后把它变成一个BeanDefintion,然后把BeanDefintion保存到BeanDefintionMap中,然后遍历BeanDefintionMap,做一些验证,是否单例,是否原型,是否懒加载等,然后尝试获取这个类有没有已经在单例池中存在,有没有被提前暴露,如果没有提前暴露,spring就会去创建Bean,首先推断构造方法,得到一个最佳的构造方法用来实例化Bean,然后通过反射区实例化一个java对象,再去进行一些初始化工作,是否需要支持循环依赖,如果需要支持循环依赖,那么需要暴露一个ObjectFactory,保存到二级缓存中,然后进行属性注入;再往下执行会执行很多aware接口的回调,执行生命周期接口的回调,@PostConstruct等实现了initializerBean接口的;如果此时判断有AOP的话,会在这个时候生成代理;在往

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/327764.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号