1、从FileSystemAppllicationContext分析Spring对IOC容器的初始化过程
其类继承体系如下:
通常会调用refresh() 方法,它是IOC容器才初始化的入口。首先会去获取一个beanFactory,实际上为DefaultListableBeanFactory。它持有beanDefinitionMap,里面存储上一节提到的BeanDefinition,同时还有beanDefinitionNames、singletonObjects(用来存储实例化后的单实例对象)等对象。在此之前,还有很重要的一步,是调用refreshBeanFactory()方法,用来根据指定的路径找到resource文件,然后读取文件转换成spring的内部结构BeanDefinition,并且以key-value的形式存入到beanDefinitionMap,用来提供给后续实例化bean时使用。通过debug一下spring源代码里面的测试实例类WebApplicationContextScopeTests,便可以一目了然。如下图:
获取到beanFactory以后会进行一系列的预处理,包括context's class loader、MessageSource registered、post-processing等。重点在于finishBeanFactoryInitialization(beanFactory)方法,它会去实例化单实例、非延迟加载(spring 默认bean配置)的bean。首先会去beanDefinitionMap获取bean定义,然后调用getBean(beanName)去实例化bean,并将它放到DefaultListableBeanFactory的singletonObjects(map)中去。
整个IOC容器的初始化,大致是这个流程,具体spring还会支持各种属性配置,以及初始化前后支持的各种操作等。通过debug源代码,可以针对想要了解的细节及模块研究其实现原理。
相关推荐
《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》从源代码的角度对Spring的内核和各个主要功能模块的架构、设计和实现原理进行了深入剖析。你不仅能从本书中参透Spring框架的出色架构和设计思想,还能从...
### Spring架构分析 Spring框架的设计基于模块化思想,其架构可以分为以下几个核心模块: 1. **核心容器**:这是Spring框架的基础,包含有BeanFactory和ApplicationContext接口,用于实现依赖注入。 2. **数据访问...
Spring技术内幕 深入解析Spring架构与设计原理1(完整清晰版),一共两部分,这是第一部分 《Spring技术内幕:深入解析Spring架构与设计原理》是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自...
第一部分详细分析了Spring的核心:IoC容器和AOP的实现,能帮助读者了解Spring的运行机制;第二部分深入阐述了各种基于IoC容器和AOP的Java EE组件在Spring中的实现原理;第三部分讲述了ACEGI安全框架、DM模块以及Flex...
Spring技术内幕:深入解析Spring架构与设计原理(第2版)》是国内唯一一本系统分析Spring源代码的著作,也是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自执笔,Java开发者社区和Spring开发者...
Spring整体架构分析图
《SPRING技术内幕:深入解析SPRING架构与设计原理》这本书是Java开发领域的一部重量级作品,由具有丰富开发经验的专家撰写,受到了Java开发者社区和Spring开发者社区的高度推崇。书中深入剖析了Spring框架的核心架构...
### Spring技术内幕与深入解析Spring架构与设计 #### 书籍概述 本书《Spring技术内幕+深入解析Spring架构与设计》是一本专为Spring框架开发者所撰写的深度技术指南。作者凭借超过十年的Java开发经验,从Spring 3.0...
Spring技术内幕:深入解析Spring架构与设计原理(第2部分) 《Spring技术内幕:深入解析Spring架构与设计原理》是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自执笔!Java开发者社区和Spring...
大数据+springcloud技术架构图
《Spring技术内幕——深入解析Spring架构与设计原理》是一本深度剖析Spring框架核心机制与设计理念的专业书籍。本书旨在帮助读者全面理解Spring的内部工作原理,从而更好地应用和优化Spring框架在实际开发中的使用。...
SPRING技术内幕__深入解析SPRING架构与设计原理,目前csdn上有多分,有的不好使,有的拆成很多分且下载分数很多,这是见过的一本不错的spring书籍,上传共享之、方便下载
4. **Spring MVC**:Spring MVC是Spring框架的一部分,用于构建Web应用的模型-视图-控制器架构。DispatcherServlet是核心组件,它负责请求分发。Controller接口定义了处理请求的方法,视图解析器将Model数据渲染成...
《SPRING技术内幕:深入解析SPRING架构与设计原理》这本书深入探讨了Spring框架的核心机制和设计理念,旨在帮助读者理解并掌握Spring的精髓。Spring作为Java企业级应用开发的重要工具,其灵活性、可扩展性和模块化的...
Spring技术内幕 深入解析Spring架构与设计原理1(完整清晰版),一共两部分,这是第一部分 《Spring技术内幕:深入解析Spring架构与设计原理》是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自...
第二部分深入阐述了各种基于IoC容器和AOP的JavaEE组件在Spring中的实现原理;第三部分讲述了ACEGI安全框架、DM模块以及Flex模块等基于Spring的典型应用的设计与实现。无论你是Java程序员、Spring开发者,还是平台...
深入解析spring架构原理与设计思想,探究spring成功的奥秘。 揭开spring源代码的神秘面纱,展示系统阅读开源软件源代码的方法和秘诀。 掌握spring的架构原理与设计思想真的能让开发者如虎添翼吗? ioc容器...