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. jpa CriteriaQueryNo explicit selection and an implicit one could not be determined

    java.lang.IllegalArgumentException: Error occurred validating the Criteria ... Caused by: java.lang. ...

  2. 学习SVN01

    SVN服务器搭建实录   第一章  SVN介绍 1.1 什么是SVN(subversion) SVN是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个固态的跨平台的开源的版本控制 ...

  3. 规范之“用流中的Stream.Of(arr1,arr2)将两个集合合并”

    案例:用流中的Stream.Of(arr1,arr2)将两个集合合并 /** * 功能描述: * 两个对象集合添加到一起 * 在用flatMap扁平化改为Stream<User> * 这样 ...

  4. 设置python 虚拟环境 virtualenv django 虚拟环境

    https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/development_environment Ubuntu vir ...

  5. 定常系统(时不变系统)和时变系统&& 动态系统和静态系统

    根据系统是否含有参数随时间变化的元件,自动控制系统可分为时变系统与定常系统两大类. 定常系统又称为时不变系统,其特点是:系统的自身性质(所研究物体的本质属性例如:质量.转动惯量等)不随时间而变化.具体 ...

  6. HTTP1.1、HTTP2、HTTP3 演变

    推荐阅读:https://www.cnblogs.com/zwtblog/tag/计算机网络/ 目录 HTTP 基本概念 HTTP/1.1 相⽐ HTTP/1.0 提⾼了什么性能? HTTP/1.1如 ...

  7. H5优化:canonical标签该如何正确使用

    对一组内容完全相同或高度相似的网页,通过使用Canonical标签可以告诉搜索引擎哪个页面为规范的网页,能够规范网址并避免搜索结果中出现多个内容相同或相似的页面,帮助解决重复内容的收录问题,避免网站相 ...

  8. 破解浏览器同源政策利器之JSONP

    本文是在了解了浏览器的同源规则之后,学习了破解这个规则的一个简单有效的方法->JSONP.主要通过阮一峰老师的博客学习 浏览器的同源规则 有这样一个背景,如果你通过银行的网站进行的取钱的交易,而 ...

  9. java中线程有什么用?

    线程有什么用? 通过引入线程技术,在浏览器中你可以浏览网页的同时,播放动画和声音效果,同时在后台打印一个页面.例如老板可以同时处理工程师,秘书和清洁人员的事,这 就是多线程处理机制.Within th ...

  10. js修改html中class属性

    document.getElementById("tr").setAttribute("class","styleclass"); 其中  ...