目录 继承层次图概览 ConfigurableApplicationContext分析 AbstractApplicationContext GenericApplicationContext GenericXmlApplicationContext StaticApplicationContext ResourceAdapterApplicationContext GenericGroovyApplicationContext AnnotationConfigApplicationContex…
BeanFactory是Spring中非常重要的一个类,搞懂了它,你就知道了bean的初始化和摧毁过程,对于深入理解IOC有很大的帮助. BeanFactory体系结构 首先看一下使用IDEA生成的继承层次图(图中去掉了ApplicationContext的继承图): 可以看到BeanFactory下的接口主要分为三个: HierarchicalBeanFactory:详细的分析见https://www.cnblogs.com/zhangfengxian/p/11086695.html#hier…
上一篇介绍了BeanFactory体系的所有接口——Spring源码分析——BeanFactory体系之接口详细分析,本篇就接着介绍BeanFactory体系的抽象类和接口. 一.BeanFactory的基本类体系结构(类为主): 上图可与 Spring源码分析——BeanFactory体系之接口详细分析 的图结合分析,一个以接口为主,一个以类为主(PS:Spring的体系结构要分析清楚,不得不曲线救国啊!不然27寸屏幕给我画估计都装不下.). 具体: 1.7层的类体系继承. 2.Abstrac…
初始化IoC容器(Spring源码阅读) 我们到底能走多远系列(31) 扯淡: 有个问题一直想问:各位你们的工资剩下来会怎么处理?已婚的,我知道工资永远都是不够的.未婚的你们,你们是怎么分配工资的? 毕竟,对自己的收入的分配差不多体现了自己的现状,以及自己对自己未来有什么样的期许~ 主题: 本人在阅读源码基本参考了<Spring技术内幕:深入解析 Spring架构与设计原理>,很不错的书籍,建议大家阅读. 初始化IoC容器:1,resource定位 2,BeanDefinition载入 3,把…
在上文中我们已经知道了Spring如何从我们给定的位置加载到配置文件,并将文件包装成一个Resource对象.这篇文章我们将要探讨的就是,如何从这个Resouce对象中加载到我们的容器?加载到容器后又是什么样子呢? 大家可以跟着我一步步来,一定要把Spring啃完,加油~ 文章目录 前期准备: 开始解析: 总结: 前期准备: 上篇文章中,我们已经跟踪到了org.springframework.beans.factory.support.AbstractBeanDefinitionReader的l…
前言 有一个Spring源码阅读环境是学习Spring的基础.笔者借鉴了网上很多搭建环境的方法,也尝试了很多,接下来总结两种个人认为比较简便实用的方法.读者可根据自己的需要自行选择. 方法一:搭建基础Spring项目 思路就是创建一个最基本的spring项目,通过下载源码,可以实现阅读源码的需求.优点是非常简单快捷,缺点是无法对源码进行注释和二次开发. 1. 在IDEA中创建一个maven项目 这里我们利用模板创建一个web项目 按照提示填写相关信息,然后一直next即可. 2. 创建包目录结构…
上一篇分析了BeanFactory体系的2个类,SimpleAliasRegistry和DefaultSingletonBeanRegistry——Spring源码分析——BeanFactory体系之抽象类.类分析(一),今天继续分析. 一.工厂Bean注册支持——FactoryBeanRegistrySupport 废话不多说,直接看我注释的源码: /* * Copyright 2002-2012 the original author or authors. * * Licensed und…
我们到底能走多远系列(33) 扯淡: 各位:    命运就算颠沛流离   命运就算曲折离奇   命运就算恐吓着你做人没趣味   别流泪 心酸 更不应舍弃   ... 主题: Spring源码阅读还在继续,上篇文章初始化IoC容器:摸我 事实上前面的IOC容器初始化只是建立了BeanDefinition数据映射,而依赖注入的过程是在向Ioc容器索要bean的时候发生的. getBean就是触发依赖注入的地方. 1,下面是AbstractBeanFactory的getBean实现.根据scop进行分…
idea搭建spring源码阅读环境 安装gradle Github下载Spring源码 新建学习spring源码的项目 idea搭建spring源码阅读环境 安装gradle 在官网中下载gradle二进制文件下载地址…
上篇文章中我们介绍了准备Spring源码阅读环境的两种姿势,接下来,我们就要开始探寻这个著名框架背后的原理.Spring提供的最基本最底层的功能是bean容器,这其实是对IoC思想的应用,在学习Spring容器的实现原理之前,我们有必要先来了解一下什么是IoC,这就是本文的重点. 1. IoC IoC是随着近年来轻量级容器(Lightweight Container)的兴起而逐渐被很多人提起的一个名词,它的全称为Inversion of Control,中文通常译为控制反转.好莱坞原则"Don’…