Spring懒加载的单例Bean获取过程是怎样的(bean,spring,编程语言)

时间:2024-05-10 05:26:49 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

    Spring%E6%87%92%E5%8A%A0%E8%BD%BD%E7%9A%84%E5%8D%95%E4%BE%8BBean%E8%8E%B7%E5%8F%96%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84

xml的读取应该是Spring的重要功能,因为Spring的大部分功能都是以配置做为切入点的。

Spring懒加载的单例Bean获取过程是怎样的

Spring懒加载的单例Bean获取过程是怎样的

Spring懒加载的单例Bean获取过程是怎样的

Spring懒加载的单例Bean获取过程是怎样的

Spring懒加载的单例Bean获取过程是怎样的

参数doc是doLoadBeanDefinitions()方法传进来的 loadDocument 加载过来的。这边就很好的体现出了面向对象的单一全责原则,将逻辑处理委托給单一的类去处理。

在这边单一逻辑处理类是: BeanDefinitionDocumentReader

核心方法: documentReader.registerBeanDefinitions(doc, createReaderContext(resource));

Spring懒加载的单例Bean获取过程是怎样的开始解析:Spring懒加载的单例Bean获取过程是怎样的

在Spring的xml配置中有两种方式来声明bean:

Spring懒加载的单例Bean获取过程是怎样的

对于默认标签的解析:

Spring懒加载的单例Bean获取过程是怎样的

对Bean 配置的解析:

Spring懒加载的单例Bean获取过程是怎样的

BeanDefinitionHolder bdHolder = delegate.parseBeanDefinitionElement(ele); 返回BeanDefinitionHolder

Spring懒加载的单例Bean获取过程是怎样的

Spring懒加载的单例Bean获取过程是怎样的

这边代码大致看下来:

提取元素中的id和name属性

进一步解析将其他属性封装到 BeanDefinition 的实现类中

如果没有指定beanName 变使用默认规则生成beanName

封装类BeanDefinitionHolder

可以先了解一下 BeanDefinition 这个类的作用。

Spring懒加载的单例Bean获取过程是怎样的

Spring容器的BeanDefinitonRegistry就像是Spring配置信息的内存数据库,主要是以map的形式保存的。

Spring懒加载的单例Bean获取过程是怎样的

然后就是各种对属性的解析的具体方法:

Spring懒加载的单例Bean获取过程是怎样的

本文:Spring懒加载的单例Bean获取过程是怎样的的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Spring事务的知识点有哪些下一篇:

6 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18