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

Spring容器结构(快速说明)

结构:

保留类的定义信息(beanDefinitionMap)

1、首先“xml文件中类的配置都存储在beanDefinitionMap中的table类(该类的类型是ConcurrentHashMap$Node)初始大小:512 ,然后我们配置为Monster01id的类是放在217的位置”

2、key:xml文件中配置的id

val:该类的所有配置信息

217位置的配置类

结构:

1、beanClass : 类的全路径(后续是通过这个路径进行反射创建)

2、lazyinit:懒加载(true:当用户用到这个类的时候我创建对象

false:容器启动时就直接 new 好对象,提前准备好,放 singletonObjects 里)

3、根据第二点!所以这里很重要,如果你需要每次getBean()获取的都是一个新的对象,那么在xml文件的<bean>标签属性中使用scope="prototype"

这里就是存储217位置类的属性

通过getBean()方法获取的对象存储位置

1、如果是单例模式:存储在一级的缓存中

对于绝大多数的单例Bean,其完全初始化后的成品对象会被集中存储在容器中的一级缓存中,也就是singletonObjects中,这是一个底层的ConcurrentHashMap集合。当业务代码调用getBean()时,就会Spring就会优先查询这个Map,如果存在则直接返回该实例,如果不存在,则会触发创建流程,完成后 ,将其存入到缓存池中

2、如果不是单例模式(原型作用域):不存储在容器中

如果是原型作用域中的Bean,那么调用getBean()方法时,都会创建一个全新的生命周期和一个完整的实例,这个实例永远不会进入任何缓存池中,返回的就是这个对象



http://www.gsyq.cn/news/1506212.html

相关文章:

  • 2026苏州小程序开发公司推荐:商城、预约、会员小程序怎么选?
  • 4 大 AI 研究员组队搞科研!Codex、Claude Code、OpenClaw、Hermes四位“AI研究员“组成的可迭代、可迁移的科研协作团队
  • N46Whisper:基于AI的日语视频字幕生成完整指南
  • 钉钉ONE溃败根源:AI沦为组织焦虑放大器,悟空接棒能否破局?
  • 探索Roboto字体:如何构建Android和Chrome OS的默认字体系统
  • 别再死记硬背LSTM公式了!用PyTorch手把手拆解输入门、遗忘门和输出门(附代码)
  • 【内蒙古大学支持 | SAE(ISSN: 0148-7191)出版 | 城市建设与交通运输领域EI会议征稿通知】第三届城市建设与交通运输国际学术会议(UCT 2026)
  • 从理想模型到工程实践:双目深度估计的完整技术链路解析
  • 保姆级教程:用Spark 3.4.1 + Kafka 3.0.0实现Direct方式实时WordCount(附完整代码)
  • 超越简单替换:用Poi-tl玩转Word模板,实现数据明细表与动态柱状图联动
  • 亲测翔安区本地不锈钢批发厂家精工加工,质筑未来|厦门市翔安区天华菲金属制品经营部全方位赋能闽南金属建材行业 - 信息热点
  • 【期末复习02】51单片机期末复习总纲领
  • 智慧供暖可视化组态管理平台解决方案
  • MC9S08JM60 USB开发与调试实战:从模块配置到问题追踪
  • NXP MC9S12G ADC10B12CV2模块配置与应用实战指南
  • 如何高效管理多系统启动?EFI Boot Editor专业解决方案深度解析
  • 高速差分信号与SerDes时钟设计:从基础原理到工程实践
  • 探索开源音乐播放器洛雪音乐助手:一次跨平台音乐发现之旅
  • 从80C51到P89C669:51MX内核、ISP/IAP与8MB寻址的嵌入式升级实战
  • 2026年环境试验箱推荐榜单:盐雾试验箱/气体腐蚀试验箱/淋雨试验箱/防水试验箱/防尘试验箱/沙尘试验箱/冰水冲击/霉菌/换气老化/臭氧老化试验箱实力之选 - 品牌发掘
  • 2026苏州汽车音响改装与隔音升级深度解析 本地无损施工工艺、专业调音及服务选购指南 - 音乐人生汽车音响
  • 2026年昆山汽车大灯升级改装地址电话昆山车一炫改灯 - Ayu8888
  • Honey Select 2汉化补丁完整指南:3分钟解锁中文游戏体验
  • 2026年山东一卡通回收正规平台处理渠道综合评分参考:四个维度逐一对比,找到更适合的选择 - 鼎鼎收礼品卡回收
  • 3步掌握Termius中文版:安卓手机管理服务器的终极方案
  • 制造业 AI 升级:构建企业级数字员工体系
  • C#医保WebService对接实操工程:含配置、测试窗体与完整调用封装
  • 【5G系列】NAS层PLMN选择(2)——选网策略与场景实战解析
  • Gemini 3.5 是万能的吗?深度解析语言模型的三大边界与避坑选型攻略
  • Vue+Cesium三维地形贴合测量工具:点、线、面、圆实时贴地量算