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