spring-framework

Spring MVC 源码解析:跟踪一次简单的请求处理过程

Spring MVC 源码解析:跟踪一次简单的请求处理过程

上一篇我们分析了 web 环境下容器的初始化过程,探究了在 web 项目启动过程中,Spring MVC 所执行的一系列初始化工作,本篇中我们将一起来跟踪一次 Spring MVC 对于请求的具体处理过程,从整体上对 Spring M...

Spring MVC 源码解析:Web 环境下容器的初始化过程

Spring MVC 是目前最流行的 java web 框架(之一),是对传统 servlet 的高级封装,以提升 servlet 的灵活性和易用性。从广义上来说,Spring MVC 的执行过程可以分为 容器初始化 和 请求响应处理...

Spring IoC 源码解析:循环依赖的探测与处理

Spring IoC 源码解析:循环依赖的探测与处理

Spring 为开发人员提供了极其灵活和强大的配置使用方式,在方便开发的同时也为容器的初始化过程带来了不确定性,本篇所要介绍的循环依赖就是其中之一,尤其在一些大型项目中,循环依赖的配置往往是我们不经意而为之的,幸好 Spring 能够...

Spring IoC 源码解析:高级容器的初始化过程

前面我们一直在以 BeanFactory 作为出发点探究容器的初始化和依赖注入过程,不过 Spring 为我们提供了更加高级的接口 ApplicationContext 可供使用,这也是在大众场景中官方推荐的使用方式。Applicat...

Spring IoC 源码解析:bean 实例的创建与初始化

Spring IoC 源码解析:bean 实例的创建与初始化

到上一篇为止,我们完成了对于 bean 配置进行解析和注册过程的探究,经过这一过程我们编写在 XML 中的半结构化配置已经成为一个个的 beanDefinition 实例存在于容器之中,接下来就可以通过 getBean 的方式获取我们...

Spring IoC 源码解析:自定义标签的解析过程

Spring IoC 源码解析:自定义标签的解析过程

Spring 中的标签分为默认标签和自定义标签两类,上一篇我们探究了默认标签的解析过程,当然在阅读源码的过程中我们也看到默认标签的解析过程中嵌套了对自定义标签的解析,这是因为默认标签中可以嵌套使用自定义标签,但是这和本篇所要讨论的自定...

Spring IoC 源码解析:默认标签的解析过程

Spring IoC 源码解析:默认标签的解析过程

上一篇中梳理了 bean 加载的整体过程,但是对于过程中涉及到的具体细节没有进行深入探究,我们顺着调用链一层层往下走,最终找到了位于 DefaultBeanDefinitionDocumentReader 类中真正解析配置的方法:pa...

Spring IoC 源码解析:简单容器中 bean 的加载过程初探

本篇将对定义在 XML 文件中的 bean 从静态配置到成为可使用对象的过程,即 bean 的加载和初始化过程进行一个整体的梳理,不去深究,点到为止,只求对简单容器的实现有一个整体的感知,具体实现细节留到后面用针对性的篇章进行讲解。 ...

Spring IoC 源码解析:容器的基本结构设计

IoC(Inversion of Control),即控制反转,是 Spring 的两大基础特性之一,也是面向对象程序设计中的重要法则,其目的是用来降低程序之间的耦合度。控制反转一般分为两种类型,依赖注入(Dependency Inj...

Spring IoC 源码解析:资源的描述与加载

资源(File、URL、Classpath 等等)是众多框架使用和运行的基础,Spring 当然也不例外,在具体探究 Spring 容器的设计实现之前,我们先来做一些准备工作,对于容器运行基础的资源描述做一个简单的了解。 一. 资源的...