
Spring解读
文章平均质量分 86
个人阅读Spring源码深度解读时对文章的归纳
却是人间胜景
这个作者很懒,什么都没留下…
展开
-
Bean的加载(下)
5.准备创建bean一个真正干活的函数其实是以do开头的,比如doGetObjectFromFactoryBean;而给我们错觉的函数,比如getObjectFromFactoryBean,其实只是从全局角度去做些统筹的工作。这个规矩对于createBean也不例外。createBean函数完成的具体步骤及功能:(1)根据设置的class属性或者根据className来解析Class。(2)对override属性进行标记及验证。(3)应用初始化前的后处理器,解析指定bean是否存在初始化前的短路操原创 2022-03-13 00:32:37 · 138 阅读 · 0 评论 -
Spring容器的基本实现
1.容器的基本用法bean是Spring中最核心的东西,因为Spring就像是个大水桶,而bean就像是容器中的水,水桶脱离了水也便没什么用处了。Spring的目的就是让我们的bean能成为一个纯粹的POJO,这也是Spring所追求的。2.功能分析bean完成的功能无非就是以下几点:·读取配置文件·根据配置文件中的配置找到对应的类的配置,并实例化。·调用实例化后的实例如果需要完成我们预想的功能,至少需要3个类。·ConfigReader:用于读取及验证配置文件·ReflectionUt原创 2022-03-07 21:31:30 · 521 阅读 · 0 评论 -
自定义标签解析
当Spring拿到一个元素时首先要做的是根据命名空间进行解析,如果是默认的命名空间,则使用parseDefaultElement方法进行元素解析,否则使用parseCustomElement方法进行解析。1.自定义标签使用一般的做法会用原生态的方式去解析定义好的XML文件,然后转化为配置对象。这种方式当然可以解决所有问题,但实现起来比较繁琐,特别是在配置非常复杂的时候,解析工作是一个不得不考虑的负担。Spring提供了可扩展Schema的支持,这是一个不错的折中方案,扩展Spring自定义标签配置大致需原创 2022-03-09 21:33:19 · 254 阅读 · 0 评论 -
Spring整体架构
Spring框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块,如下图所示。Spring整体架构图1.Core ContainerCore Container(核心容器)包含有Core、Beans、Context和Expression Language模块。Core和Beans模块是框架的基础部分,提供IOC(控制反转)和依赖注入特性。·Core模块主要包含Spring框架基本的核心工具类,Spring的其他组件都要用到这个包里的类,Core模块是其他组件的基本核心。原创 2022-03-06 21:06:04 · 3866 阅读 · 0 评论 -
默认标签的解析
Spring中标签包括默认标签和自定义标签两种,两种标签的用法以及解析方式存在着很大的不同默认标签的解是在parseDefaultElement函数中进行的,函数中的功能逻辑一目了然,分别对4种不同标签(import、alias、bean和beans)做了不同的处理。1.bean标签的解析及注册在4种标签的解析种,对bean标签的解析最为复杂也最为重要,所以我们从此标签开始深入分析,如果能理解此标签的解析过程,其他标签的解析自然会迎刃而解。大致的逻辑总结如下:①.首先委托BeanDefinitio原创 2022-03-08 19:51:56 · 329 阅读 · 0 评论 -
Bean的加载(上)
对于加载bean的功能,在Spring中的调用方式为:MyTestBean bean = (MyTestBean) bf.getBean(“myTestBean”)Spring加载bean的过程中所涉及的步骤大致如下:(1)转换对应beanName这里对传入的参数可能是别名,也可能是FactoryBean,所以需要进行一些列解析,这些解析内容包括如下内容:·去除FactoryBean的修饰符,也就是如果name=“&aa”,那么会首先去除&而使name=“aa”。·取指定alia原创 2022-03-11 21:40:54 · 786 阅读 · 0 评论