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文档

小结

本文没有分析也没有解析,简单开了个头。万事开头难,后续就开始填坑。

如果有人看到这里,那在这里老话重提。与君共勉,路漫漫其修远兮,吾将上下而求索。

Spring Ioc源码分析系列--前言的更多相关文章

  1. Spring Ioc源码分析系列--Ioc源码入口分析

    Spring Ioc源码分析系列--Ioc源码入口分析 本系列文章代码基于Spring Framework 5.2.x 前言 上一篇文章Spring Ioc源码分析系列--Ioc的基础知识准备介绍了I ...

  2. Spring Ioc源码分析系列--Ioc容器BeanFactoryPostProcessor后置处理器分析

    Spring Ioc源码分析系列--Ioc容器BeanFactoryPostProcessor后置处理器分析 前言 上一篇文章Spring Ioc源码分析系列--Ioc源码入口分析已经介绍到Ioc容器 ...

  3. Spring Ioc源码分析系列--Ioc容器注册BeanPostProcessor后置处理器以及事件消息处理

    Spring Ioc源码分析系列--Ioc容器注册BeanPostProcessor后置处理器以及事件消息处理 前言 上一篇分析了BeanFactoryPostProcessor的作用,那么这一篇继续 ...

  4. Spring Ioc源码分析系列--Bean实例化过程(一)

    Spring Ioc源码分析系列--Bean实例化过程(一) 前言 上一篇文章Spring Ioc源码分析系列--Ioc容器注册BeanPostProcessor后置处理器以及事件消息处理已经完成了对 ...

  5. Spring Ioc源码分析系列--Bean实例化过程(二)

    Spring Ioc源码分析系列--Bean实例化过程(二) 前言 上篇文章Spring Ioc源码分析系列--Bean实例化过程(一)简单分析了getBean()方法,还记得分析了什么吗?不记得了才 ...

  6. Spring Ioc源码分析系列--@Autowired注解的实现原理

    Spring Ioc源码分析系列--@Autowired注解的实现原理 前言 前面系列文章分析了一把Spring Ioc的源码,是不是云里雾里,感觉并没有跟实际开发搭上半毛钱关系?看了一遍下来,对我的 ...

  7. Spring Ioc源码分析系列--容器实例化Bean的四种方法

    Spring Ioc源码分析系列--实例化Bean的几种方法 前言 前面的文章Spring Ioc源码分析系列--Bean实例化过程(二)在讲解到bean真正通过那些方式实例化出来的时候,并没有继续分 ...

  8. Spring Ioc源码分析系列--自动注入循环依赖的处理

    Spring Ioc源码分析系列--自动注入循环依赖的处理 前言 前面的文章Spring Ioc源码分析系列--Bean实例化过程(二)在讲解到Spring创建bean出现循环依赖的时候并没有深入去分 ...

  9. Spring mvc源码分析系列--前言

    Spring mvc源码分析系列--前言 前言 距离上次写文章已经过去接近两个月了,Spring mvc系列其实一直都想写,但是却不知道如何下笔,原因有如下几点: 现在项目开发前后端分离的趋势不可阻挡 ...

随机推荐

  1. ACM - 最短路 - AcWing 849 Dijkstra求最短路 I

    AcWing 849 Dijkstra求最短路 I 题解 以此题为例介绍一下图论中的最短路算法.先让我们考虑以下问题: 给定一个 \(n\) 个点 \(m\) 条边的有向图(无向图),图中可能存在重边 ...

  2. Tensorflow安装教程(Anaconda)

    写在最前: 在安装过程中遇到很多坑,一开始自己从官网下载了Python3.6.3或者Python3.6.5或者Python3.7.1等多个版本,然后直接pip install tensorflow或者 ...

  3. 切图崽的自我修养-[ES6] 迭代器Iterator浅析

    Iterator 这真是毅种循环 Iterator不是array,也不是set,不是map, 它不是一个实体,而是一种访问机制,是一个用来访问某个对象的接口规范,为各种不同的数据结构提供统一的访问机制 ...

  4. 饿了么组件库element-ui正则表达式验证表单,后端验证表单。

    前言 老是遇到一些朋友问一些element-ui组件使用相关的基础问题,因为官方文档上并没有提供所有琐碎的功能代码demo.从这里开始我会根据我实际遇到的问题记录一些常见的官方文档没有详述的功能代码, ...

  5. CSS系列——浏览器默认样式

    了解HTML标签在各浏览器当中的默认样式,可以让我们了解,为什么会要写Reset.css,Reset.css当中要怎么写样式最合理.试着思考下面的问题: 为什么会有默认样式? 每个浏览器的默认样式有什 ...

  6. c++语法拾遗,一些细节与特性

    写了2年多的C+STL的acmer,在学习<C++ primer>时总结的一些少见的语法特性与细节.总体还是和题目说的一样这是一篇 c++ 拾遗. 1 变量和基本类型 1.1 基本类型 1 ...

  7. sparksql Seq生成DataFrame

    首先,使用样例类: case class User(id:Int,name: String,gender:String, age: Int) 之后使用Seq创建Dataframe val alice: ...

  8. Android 动态控制OptionMenu的显示与隐藏

    在有些场景下,可能需要动态的显示和隐藏optionmenu,可以这样实现:如果在activity中默认实现了方法: onCreateOptionsMenu(Menu menu) 那么该OptionMe ...

  9. IO流入门+简单案例实现

    IO流 总结内容 1. IO流是什么 2. 字符流和字节流 3. File常用API(前面类型为返回类型) 4. 编码转换 5. IO流实现流程 6. 输入输出流简单实现 7. 输入输出流简单实现 总 ...

  10. VUE-SSR原理和使用

    开篇N问 SSR解决了什么问题?SSR存在那些问题?SSR优点缺点是什么如何使用以及原理 自我总结了有如下优势 -  SSR利于seo优化,因为实现了在node中解析vue,将实例渲染成一个字符串直接 ...