• 《spring源码解读》 - IoC 之解析 import 标签

    时间:2022-01-30 16:44:29

    在上一文中我们分析了注册 BeanDefinition 的过程,在其中我们了解到在解析跟节点和子节点时分两种情况,对于默认名称空间的标签我们通过 DefaultBeanDefinitionDocumentReader#parseDefaultElement(Element ele, BeanDefi...

  • spring源码深度解析— IOC 之 bean 的初始化

    时间:2021-12-31 09:54:51

    一个 bean 经历了 createBeanInstance() 被创建出来,然后又经过一番属性注入,依赖处理,历经千辛万苦,千锤百炼,终于有点儿 bean 实例的样子,能堪大任了,只需要经历最后一步就破茧成蝶了。这最后一步就是初始化,也就是 initializeBean(),所以这篇文章我们分析 ...

  • spring源码深度解析— IOC 之 循环依赖处理

    时间:2021-12-23 09:34:03

    什么是循环依赖循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。如下图所示:注意,这里不是函数的循环调用,是对象的相互依赖关系。循环调用其实就是一个死循环,除非有终结条件。 Spring中循环依赖场景有: (1)构造器...

  • 02.Spring IOC源码深度解析之容器的基本实现

    时间:2021-12-18 17:22:02

    在搭建完Spring源码阅读环境后,大家比较困惑的应该就是从哪里开始入手阅读Spring源码了,众所周知Spring的两大特性为IOC和AOP,那我们先以IOC为例跟进Spring源码。IOC(Inversion of Control):即”控制反转”,它不是什么技术而是一种设计思想,在传统的J...

  • 面试真题--------spring源码解析IOC

    时间:2021-10-17 01:46:00

    spring是我经常使用的框架,可是你真的对spring理解吗? 还是只知道它得使用。如果你想知道它真实的面目请仔细向下看。1.spring是如何知道哪些Bean需要实例化的?容器启动过程中,首先调用DispatcherSerlvet的init方法,init方法内部根据web.xml的配置,读取配置...

  • Spring源码阅读-IoC容器解析

    时间:2021-10-05 01:44:02

    目录Spring IoC容器ApplicationContext设计解析BeanFactoryListableBeanFactoryHierarchicalBeanFactoryMessageSourceApplicationEventPublisherEnvironmentCapableResou...

  • Spring源码分析----IOC容器的实现(IoC容器的初始化过程(定位、载入解析、注册))

    时间:2021-08-27 19:40:38

    本文参考《Spring技术内幕第2版》,spring4 1.BeanFactory的应用场景    BeanFactory提供的是最基本的IOC容器的功能。BeanFactory接口定义了IOC容器最基本的形式,并且提供了IOC容器所应该遵守的最基本的服务契约,同是,这也是我们使用IOC容器所遵...

  • spring源码深度解析— IOC 之 开启 bean 的加载

    时间:2021-08-15 10:08:53

    概述前面我们已经分析了spring对于xml配置文件的解析,将分析的信息组装成 BeanDefinition,并将其保存注册到相应的 BeanDefinitionRegistry 中。至此,Spring IOC 的初始化工作完成。接下来我们将对bean的加载进行探索。之前系列文章:spring源码深...

  • spring源码深度解析— IOC 之 默认标签解析(下)

    时间:2021-08-12 09:39:32

    在spring源码深度解析— IOC 之 默认标签解析(上)中我们已经完成了从xml配置文件到BeanDefinition的转换,转换后的实例是GenericBeanDefinition的实例。本文主要来看看标签解析剩余部分及BeanDefinition的注册。默认标签中的自定义标签解析在上篇博文中...

  • spring源码深度解析— IOC 之 默认标签解析(上)

    时间:2021-08-12 09:39:26

    概述接前两篇文章  spring源码深度解析—Spring的整体架构和环境搭建  和  spring源码深度解析— IOC 之 容器的基本实现本文主要研究Spring标签的解析,Spring的标签中有默认标签和自定义标签,两者的解析有着很大的不同,这次重点说默认标签的解析过程。默认标签的解析是在De...

  • spring源码深度解析— IOC 之 自定义标签解析

    时间:2021-08-12 09:39:20

    概述之前我们已经介绍了spring中默认标签的解析,解析来我们将分析自定义标签的解析,我们先回顾下自定义标签解析所使用的方法,如下图所示:我们看到自定义标签的解析是通过BeanDefinitionParserDelegate.parseCustomElement(ele)进行的,解析来我们进行详细分...

  • spring源码深度解析— IOC 之 bean 创建

    时间:2021-08-12 09:39:14

    在 Spring 中存在着不同的 scope,默认是 singleton ,还有 prototype、request 等等其他的 scope,他们的初始化步骤是怎样的呢?这个答案在这篇博客中给出。singletonSpring 的 scope 默认为 singleton,第一部分分析了从缓存中获取单...

  • spring源码深度解析— IOC 之 属性填充

    时间:2021-08-12 09:39:08

    doCreateBean() 主要用于完成 bean 的创建和初始化工作,我们可以将其分为四个过程:createBeanInstance() 实例化 beanpopulateBean() 属性填充循环依赖的处理initializeBean() 初始化 bean第一个过程实例化 bean在前面一篇博客...

  • spring源码深度解析— IOC 之 容器的基本实现

    时间:2021-07-31 17:42:45

    概述上一篇我们搭建完Spring源码阅读环境,spring源码深度解析—Spring的整体架构和环境搭建 这篇我们开始真正的阅读Spring的源码,分析spring的源码之前我们先来简单回顾下spring核心功能的简单使用容器的基本用法bean是spring最核心的东西,spring就像是一个大水桶...

  • spring5 源码深度解析— IOC 之 容器的基本实现

    时间:2021-06-11 17:21:27

    概述 上一篇我们搭建完Spring源码阅读环境,spring源码深度解析—Spring的整体架构和环境搭建 这篇我们开始真正的阅读Spring的源码,分析spring的源码之前我们先来简单回顾下spring核心功能的简单使用 容器的基本用法 bean是spring最核心的东西,spring就像是一个...

  • spring源码解析(二)IOC容器

    时间:2021-05-24 17:18:03

      作为面向对象编程的集大成之作,我们直接从接口入手可以帮助我们更直观的了解Ioc容器的设计原理。下图描述了Ioc容器中的主要接口设计: 这里主要是接口体系,而具体实现体系,比如DefaultListableBeanFactory就是为了实现ConfigurableBeanFactory,从而成...

  • Spring源码解析二:IOC容器初始化过程详解

    时间:2020-12-21 19:36:18

    IOC容器初始化分为三个步骤,分别是: 1、Resource定位,即BeanDefinition的资源定位。 2、BeanDefinition的载入 3、向IOC容器注册BeanDefinition 下面我们来详细展开这三部分的内容 一、Resource定位  以ApplicationContext...