学习优秀框架的源码,是提升个人技术水平必不可少的一个环节。如果只是停留在知道怎么用,但是不懂其中的来龙去脉,在技术的道路上注定走不长远。最近,学习了一段时间的spring源码,现在整理出来,以便日后温故知新。 IOC容器是spring最核心的模块之一,是整个spring体系的基石 ...
一 IOC接口设计 IOC容器设计的源码主要在spring beans.jar spring context.jar这两个包中。IOC容器主要接口设计如下: 这里的接口设计有两条主线:BeanFactory和ApplicationContext BeanFactory gt HierarchicalBeanFactory gt ConfigurableBeanFactory:这是BeanFacto ...
2017-02-24 14:06 0 1602 推荐指数:
学习优秀框架的源码,是提升个人技术水平必不可少的一个环节。如果只是停留在知道怎么用,但是不懂其中的来龙去脉,在技术的道路上注定走不长远。最近,学习了一段时间的spring源码,现在整理出来,以便日后温故知新。 IOC容器是spring最核心的模块之一,是整个spring体系的基石 ...
上一篇跟踪了IOC容器对配置文件的定位,现在我们继续跟踪代码,看看IOC容器是怎么加载和注册配置文件中的信息的。开始之前,首先我们先来了解一下IOC容器所使用的数据结构-------BeanDefinition,它是一个上层接口,有很多实现类,分别对应不同的数据载体。我们平时开发 ...
上一篇主要是跟踪了IOC容器对bean标签进行解析之后存入Map中的过程,这些bean只是以BeanDefinition为载体单纯的存储起来了,并没有转换成一个个的对象,今天继续进行跟踪,看一看IOC容器是怎样实例化对象的。 我们都使用过以下代码: 这样我们就能获取 ...
目录 Spring IoC容器 ApplicationContext设计解析 BeanFactory ListableBeanFactory HierarchicalBeanFactory MessageSource ...
一、Bean对象创建的时机 依赖注入是在Bean对象创建的时候完成的,那么第一个问题来了,Bean对象什么时候创建? Bean对象的创建是在getBean方法被调用的时候发生的,而在Spring中有两个场景会触发getBean方法被调用。 1、单例模式并且是非延迟加载的对象,会在IOC容器 ...
上一篇介绍了ioc容器的初始化过程,主要完成了ioc容器建立beanDefinition数据映射。并没有看到ioc容器对bean依赖关系进行注入。 接口getbean就是出发依赖注入发生的地方。下面从defaultlistableBeanFactory的基础类 ...
概述 上一篇我们搭建完Spring源码阅读环境,spring源码深度解析—Spring的整体架构和环境搭建 这篇我们开始真正的阅读Spring的源码,分析spring的源码之前我们先来简单回顾下spring核心功能的简单使用 容器的基本用法 bean是spring最核心的东西,spring ...
首先Spring要注入自己的bean需要在Spring-provider.xml(提供者spring注入文件,名字可能不一样)添加bean注入,其中有dubbo的自定义标签,xml如何识别这些标签?拿到标签如何注入到Spring Container?一般需要如下几个步骤: 1)、设计配置属性 ...