自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 Spring源码阅读7-IOC容器-IOC容器相关特性解析

前面我们分析了Bean的创建和依赖注入,在分析的过程中,有一些代码没有在前面的内容中提及到。下面我们会将关键的部分解析下。容器的初始化在Resourse的定位章节中,类AbstractApplicationContext中有如下的代码片段:public void refresh() throws BeansException, IllegalStateException { synchr...

2019-05-16 10:05:40 275 1

原创 Spring源码阅读6-IOC容器-IOC容器的依赖注入

前面我们分析了BeanDefinition的载入和注册过程, 在此过程中,没有对Bean依赖关系的注入。下面我们将分析依赖注入发生的时机。在spring中,依赖注入发生的时机有2种:用户第一次向IOC容器索要Bean的时候配置了Lazy-init属性的Bean将会在初始化的过程中完成依赖的注入。下面我们先分析下第一种情况。首先回想一下,我们如何获取一个Bean? 我想大家都不陌生,可以...

2019-05-16 10:03:07 266

原创 Spring源码阅读5-IOC容器-BeanDefinition的注册

在上一节,我们得到了BeanDefinitionHolder对象,即将Bean的解析和载入完成了,下面将会对这个对象进行注册到容器中。 在前面我们提到过,IOC容器实际上是一个Map, 在这里将得到验证。我们从前面的分析得到,在DefaultBeanDefinitionDocumentReader类中的processBeanDefinition方法中:protected void proces...

2019-05-16 10:00:36 263

原创 Spring源码阅读4-IOC容器-BeanDefinition的载入和解析

在上一节中,我们读源码到Resource的定位部分。 当DefaultResourceLoader返回Resource后,在AbstractBeanDefinitionReader中会对得到的Resource进行读取和解析。 下面是AbstractBeanDefinitionReader中对应的方法:public int loadBeanDefinitions(String location, ...

2019-05-16 09:52:12 295

原创 Spring源码阅读3-IOC容器-BeanDefinition的Resource定位

后续我将会按照一个具体的demo, 一步一步的跟进容器的启动过程。首先构建一个Main, 用于启动容器。public class Main { public static void main(String[]arg){ ApplicationContext applicationContext = new ClassPathXmlApplicationContext("...

2019-05-14 16:46:44 187

原创 Spring源码阅读2-IOC容器-IOC设计整体架构

Spring IOC 容器实现整体概述在Spring中,IOC容器的设计中,主要分为2种具体的表现形式:BeanFactory为代表的容器ApplicationContext为代表的应用上下文容器IOC容器到底是什么?如果用一句话来表述,Ioc容器的底层数据结构,就是一个Map, 保存着各个Bean的定义,然后通过依赖注入等方式将这些Bean管理起来。BeanFactory和App...

2019-05-14 16:45:23 390

原创 Spring源码阅读1-IOC容器-IOC相关概念

IOC相关概念自工作以来,使用Spring已经快3年了,之前主要是关注如何使用Spring,对其内部精致的构建没有涉及或者只有部分的涉及,为了更好的了解Spring的精髓和提高自己的简介,将之前学习Spring的文章和笔记,以及源码的阅读进行整理,形成该系列的文章,以供自己学习和反思。控制反转对于控制反转,我的理解是: 将创建依赖对象的方式交给框架、容器进行管理, 这种现象叫做控制反转。 比...

2019-05-14 16:41:59 192

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除