Spring源码专题
夜半听风醉
想遇见一个难忘的人
展开
-
Spring源码之BeanFactory(七)
前言: 本文承接上一篇,继续来解读spring的第二个很重要的容器BeanFactory,也就是生产bean的工厂。 一个工厂他需要具备的东西大概有原料,生产线,仓库,本文也将从这三方面来解读BeanFactory BeanFactory的基础关系图 此图看着略复杂,但从最下面开始看,就一个可以实例化的实现类DefaultListableBeanFactory,所以我们可以从他来入手来解读。 本...原创 2019-11-04 19:10:30 · 168 阅读 · 0 评论 -
Spring源码之ApplicationContext(六)
前言: Spring的两大容器ApplicationContext与BeanFactory,顾名思义ApplicationContext是应用的上下文,BeanFactory是bean工厂。 但是从代码层面来看ApplicationContext接口是继承了BeanFactory接口的,也就是说两者都有做容器的能力,而ApplicationContext 相对BeanFactory而言他又多了一些...原创 2019-10-31 17:40:39 · 269 阅读 · 0 评论 -
Spring源码之Spring上下文环境的初始化流程(五)
前言: 在上一节,解析玩所有的类后,开始初始化spring的上下文环境 1.解析代码入口,下图第13行 public AnnotationConfigApplicationContext(Class<?>... annotatedClasses) { /** * 先调用父类的构造方法: * 1.DefaultResourceLoader构造方法,初始化ClassLoader * ...原创 2019-10-22 21:12:37 · 663 阅读 · 0 评论 -
Spring源码之AnnotatedBeanDefinitionReader的注册流程(四)
前言: 还是顺着spring容器初始化的流程来进行跟踪,在上一节解析完两个扫描器的初始化后,本节将继续解析注解扫描器的注册。 此处代码跟踪的注册一般是注册配置类,不过此方法不止一处调用,故作通用解析 1.解析AnnotationConfigApplicationContext构造方法的第五行 public AnnotationConfigApplicationContext(Class<?&...原创 2019-10-21 17:33:23 · 2498 阅读 · 6 评论 -
Spring源码之扫描器(AnnotatedBeanDefinitionReader和ClassPathBeanDefinitionScanner)(三)
前言 Spring容器加载Bean定义信息的两个扫描器: AnnotatedBeanDefinitionReader和ClassPathBeanDefinitionScanner *从命名来看,前者是读取注解声明的bean的定义信息;后者是读取xml声明的bean的定义信息 本文将详细介绍这两个扫描器的初始化过程 1.准备工作 1.初始化一个spring容器对象 2.断点调试,跟踪查看扫描器的初...原创 2019-10-20 15:20:58 · 759 阅读 · 0 评论 -
Spring源码之BeanDefinition(二)
前言: 本节介绍BeanDefinition的相关概念,实现类的种类及其用途 1.BeanDefinition的概念 BeanDefinition描述一个bean实例,这个bean实例包含了属性值,构造函数的参数值,以及由具体实现提供额进一步信息 **相关重要参数方法 1.parentName: String 2.beanClassName: 顾名思义,bean的类名 3.scope: 创建be...原创 2019-10-16 20:13:59 · 132 阅读 · 0 评论 -
Spring5.0.X源码的下载及Idea编译(一)
1.从github下载spring源码 下载地址:https://github.com/spring-projects/spring-framework 本文以下载spring5.0为例,下载步骤如图 2.安装Gradle Mac安装,直接在终端输入:brew install gradle Windows安装,从官网下载安装即可 以mac为例,gradle -v 3.使用idea导入,下载依赖...原创 2019-10-16 11:09:49 · 1100 阅读 · 1 评论