Spring Ioc源码分析系列--前言
Spring Ioc源码分析系列--前言
为什么要写这个系列文章
首先这是我个人很久之前的一个计划,拖了很久没有实施,现在算是填坑了。其次,作为一个Java开发者,Spring是绕不开的课题。在Spring之中Ioc是一把利器,这是依赖控制反转的关键实现。所以理解Ioc的概念对于初步窥探Spring的实现是非常好的入口,那接下来的文章我们就来分析Ioc的设计思想和具体实现,这篇文章主要是作为一个前言入口用于介绍脉络,不涉及太多的原理分析。
怎么学习Spring
Spring庞大而复杂的结构对于刚入门的人来说是非常复杂的,断点调试跟着跟着可能就会迷路翻车,更别说梳理好各个模块之间的关系以及理解其设计思想了。
那么对于初入江湖的我们来说,怎么样才能比较高效地理清Spring的模块关系以及其设计思想呢?网上各种资料很多,但是鱼龙混杂,水平参差不齐,所以最好的就是根据官网的文档去学习。所以我后续的文章也会跟着官网文档的顺序去分析,会引用相应的片段互相补充。
《孙子兵法·谋攻篇》 有言: 知彼知己,百战不殆。意思是对敌人的情况和自己的情况都有透彻的了解,作战就不会失败 。
所以我们首先要清晰这系列的文章会分析Spring的哪些模块,Ioc部分对应下图的Core Container部分,如果再细分,对应的是里面的Beans和Core模块,Context模块是依赖于Beans和Core构建的上下文模块,是直接提供对外使用的,如果是严格意义上实现了Ioc的模块就是Beans和Core模块,那么这系列的文章就是分析Beans模块和Core模块。

系列文章脉络
既然知道了要分析的是哪些模块,那这里介绍一下后面系列文章准备行文的脉络。大概计划本系列文章大概脉络如下:
- 介绍Ioc容器是什么,代码如何启用一个容器,BeanFactory和ApplicationContext的区别
- Bean是什么,Bean的初始化以及依赖注入
- 基于注解的容器实现
- ....
大概的思路如下,写的过程会做调整。
学习资料
Spring书籍
- 《Spring 实战(第4版)》 豆瓣评分:8.3 。
- 《Spring 揭秘》 豆瓣评分:9.0 。
- 陈雄华/林开雄/文建国 《精通Spring 4.x》 豆瓣评分 8.2 分。
- 《Spring 源码深度解析》 豆瓣评分:6.6 。
- 《Spring 技术内幕》 豆瓣评分 5.8 。
Spring文档
小结
本文没有分析也没有解析,简单开了个头。万事开头难,后续就开始填坑。
如果有人看到这里,那在这里老话重提。与君共勉,路漫漫其修远兮,吾将上下而求索。
Spring Ioc源码分析系列--前言的更多相关文章
- Spring Ioc源码分析系列--Ioc源码入口分析
Spring Ioc源码分析系列--Ioc源码入口分析 本系列文章代码基于Spring Framework 5.2.x 前言 上一篇文章Spring Ioc源码分析系列--Ioc的基础知识准备介绍了I ...
- Spring Ioc源码分析系列--Ioc容器BeanFactoryPostProcessor后置处理器分析
Spring Ioc源码分析系列--Ioc容器BeanFactoryPostProcessor后置处理器分析 前言 上一篇文章Spring Ioc源码分析系列--Ioc源码入口分析已经介绍到Ioc容器 ...
- Spring Ioc源码分析系列--Ioc容器注册BeanPostProcessor后置处理器以及事件消息处理
Spring Ioc源码分析系列--Ioc容器注册BeanPostProcessor后置处理器以及事件消息处理 前言 上一篇分析了BeanFactoryPostProcessor的作用,那么这一篇继续 ...
- Spring Ioc源码分析系列--Bean实例化过程(一)
Spring Ioc源码分析系列--Bean实例化过程(一) 前言 上一篇文章Spring Ioc源码分析系列--Ioc容器注册BeanPostProcessor后置处理器以及事件消息处理已经完成了对 ...
- Spring Ioc源码分析系列--Bean实例化过程(二)
Spring Ioc源码分析系列--Bean实例化过程(二) 前言 上篇文章Spring Ioc源码分析系列--Bean实例化过程(一)简单分析了getBean()方法,还记得分析了什么吗?不记得了才 ...
- Spring Ioc源码分析系列--@Autowired注解的实现原理
Spring Ioc源码分析系列--@Autowired注解的实现原理 前言 前面系列文章分析了一把Spring Ioc的源码,是不是云里雾里,感觉并没有跟实际开发搭上半毛钱关系?看了一遍下来,对我的 ...
- Spring Ioc源码分析系列--容器实例化Bean的四种方法
Spring Ioc源码分析系列--实例化Bean的几种方法 前言 前面的文章Spring Ioc源码分析系列--Bean实例化过程(二)在讲解到bean真正通过那些方式实例化出来的时候,并没有继续分 ...
- Spring Ioc源码分析系列--自动注入循环依赖的处理
Spring Ioc源码分析系列--自动注入循环依赖的处理 前言 前面的文章Spring Ioc源码分析系列--Bean实例化过程(二)在讲解到Spring创建bean出现循环依赖的时候并没有深入去分 ...
- Spring mvc源码分析系列--前言
Spring mvc源码分析系列--前言 前言 距离上次写文章已经过去接近两个月了,Spring mvc系列其实一直都想写,但是却不知道如何下笔,原因有如下几点: 现在项目开发前后端分离的趋势不可阻挡 ...
随机推荐
- 面试问题之C++语言:面向对象的五个原则
五大原则: 1.单一职责原则SRP(Single Responsibility Principle):是指一个类的功能要单一,不能包罗万象.如同一个人一样,分配的工作不能太多,否则一天到晚虽然忙忙碌碌 ...
- 什么是 Redis?
Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis 支持数据的持久化,可以 ...
- ElasticSearch-学习笔记04-复杂查询
service package com.huarui.service; import com.huarui.entity.SearchEntity; import com.huarui.exectio ...
- 如何解决Ubuntu下的“E: Unable to correct problems, you have held broken packages.”的问题. aptitude
今天安装build-essential时出现了以下问题,这属于包的依赖. 解决方案: 1,sudo apt-get install aptitude:完成aptitude命令安装 2,sudo apt ...
- ECMAScript中有两种属性:数据属性和访问器属性。
ECMA-262定义这些特性是为了实现JavaScript引擎用的,因此在JavaScript中不能直接访问它们.为了表示特性是内部值,该规范把它们放在了两对儿方括号中,例如 [[Enumerable ...
- nextSibling和lastSibling
在FireFox中包含众多空格作为文本节点,因此在我们使用nextSibling和previousSibling时就会出现问题.因为FireFox会把文本节点误当做元素节点的兄弟节点来处理.我们可以添 ...
- ES6-11学习笔记--Symbol
Symbol:一种新的原始数据类型 声明方式: let s1 = Symbol() let s2 = Symbol() console.log(s1); // Symbol() console.l ...
- 【每日日报】第五十三天---安装My SQL
1 2今天安装了My SQL并学习了一些基础的命令 mysql下载及安装教程 2 没有成功安装SQL Server,误删了一些文件 3 明天继续看视频 ------------------------ ...
- npm权限不够(安装什么都报错)
问题 Windows下使用npm安装任何包都报错, Windows下使用npm显示权限不够 如图: 解决方法 1. 方法一 使用管理员权限打开 命令窗口, 治标不治本!!!!不推荐 ...
- 【LeetCode】358.K 距离间隔重排字符串
358.K 距离间隔重排字符串 知识点:哈希表:贪心:堆:队列 题目描述 给你一个非空的字符串 s 和一个整数 k,你要将这个字符串中的字母进行重新排列,使得重排后的字符串中相同字母的位置间隔距离至少 ...