• spring ioc 源码分析之-- beanDefinition的加载过程以及ComponentScan,@componet,@import @Bean等注解解析过程

    时间:2022-12-01 23:23:17

    背景:我们启动主启动类后,相应的bean就被扫描进来了,原理是啥?实现该功能的主要核心类就是:ConfigurationClassPostProcessor,我们看看他的继承体系:它实现了BeanDefinitionRegistryPostProcessor接口,该接口有个方法:void postP...

  • Spring源码解析-ioc容器的设计

    时间:2022-09-30 10:54:58

    Spring源码解析-ioc容器的设计1 IoC容器系列的设计:BeanFactory和ApplicatioContext在Spring容器中,主要分为两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本的功能;另一个是ApplicationCont...

  • Spring源码解析-IOC容器的实现-ApplicationContext

    时间:2022-09-30 10:54:46

    上面我们已经知道了IOC的建立的基本步骤了,我们就可以用编码的方式和IOC容器进行建立过程了。其实Spring已经为我们提供了很多实现,想必上面的简单扩展,如XMLBeanFacroty等。我们一般是用ApplicationContext这个接口,这个接口实现了基本的功能外,还添加了很多相应的功能,...

  • Spring源码-IOC部分-自定义IOC容器及Bean解析注册【4】

    时间:2022-09-30 09:14:40

    实验环境:spring-framework-5.0.2、jdk8、gradle4.3.1Spring源码-IOC部分-容器简介【1】Spring源码-IOC部分-容器初始化过程【2】Spring源码-IOC部分-Xml Bean解析注册过程【3】Spring源码-IOC部分-自定义IOC容器及Bea...

  • Spring IoC源码解析——Bean的创建和初始化

    时间:2022-06-26 06:23:30

    Spring介绍Spring(http://spring.io/)是一个轻量级的Java 开发框架,同时也是轻量级的IoC和AOP的容器框架,主要是针对JavaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,MyBatis框架等组合使用。IoC介绍IoC是什么Ioc—...

  • Spring源码:IOC原理解析(一)

    时间:2022-06-10 02:49:20

    版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习!IOC(Inversion of Control),即控制反转,意思是将对象的创建和依赖关系交给第三方容器处理,我们要用的时候告诉容器我们需要什么然后直接去拿就行了。举个例子,我们有一个工厂,它生产各种产品,当你需要某个产品,比如你需要一辆...

  • Spring源码:IOC原理解析(二)

    时间:2022-06-10 02:49:14

    版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习!接着上一章节的内容,我们来分析当new一个FileSystemXmlApplicationContext对象的时候,spring到底做了那些事。FileSystemXmlApplicationContext类的内容主要是定义了若干重载的构造...

  • Spring源码解析三:IOC容器的依赖注入

    时间:2022-05-02 01:12:45

    一、Bean对象创建的时机依赖注入是在Bean对象创建的时候完成的,那么第一个问题来了,Bean对象什么时候创建?Bean对象的创建是在getBean方法被调用的时候发生的,而在Spring中有两个场景会触发getBean方法被调用。1、单例模式并且是非延迟加载的对象,会在IOC容器初始化的时候被创...

  • 《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,第一部分分析了从缓存中获取单...