Spring源码系列【二】——Spring框架概述

2020年1月5日23:25:01 发表评论 246
摘要

1.源码分析前的123
2.Spring框架组件
3.后续思路

一、写在前面的废话

上一篇搭建了 Spring 源码分析的环境,这一篇正式开始了,在进入正题之前先问自己几个问题:

1、为什么要看 Spring 源码?

2、想要分析到哪个层面?

3、如何看 Spring 源码?

……

问题1,不用说了,Spring 框架是众多优秀框架之一,也是 java 从业者必会框架,网上关于 Spring 的赞誉之词不胜枚举,既是用/学一个东西,在用/学之前总要问这个东西为什么会出现?是为了解决哪些问题?研究要有个整体思路,切忌上来就一头扎进代码中,容易“只见树木不见森林”。看源码是为了更深入的了解框架,当出现需求时能抓住切入点,更好的运用、扩展框架。

问题2,Spring 框架十多个组件,在这里并不对所有组件都详细了解,如果确实有需要钻研的当然就另说了,本人这轮打算重点了解常用几个组件实现,以及知道每个组件用于实现哪一类功能就 OK 了。希望做到“每有会意便欣然忘食”,常学常新。

问题3,目前个人功力不够,大局观有限,先抽丝剥茧地一点点看了,在看的过程中会不断更新这部分。

在阅读源码的过程中只需要关心核心的主流程,了解其工作原理,并在阅读的过程中感受它的代码风格以及设计理念就好了,如果真的追求理解每一行代码真的是非常耗时的一件事,毕竟阅读源码的目的大多数是成长而不是真的要去维护 Spring。

网上资料千千万,同一个东西每个人都有不同的见解,总结的一个比一个精彩。但是,古语云:纸上得来终觉浅,绝知此事要躬行。亲自下手带有目的性的研究印象更深、效果更好些。废话不多说了。

二、Spring 组件

2.1 spring-framework 代码

Spring源码系列【二】——Spring框架概述

2.2 Spring 框架组件

Spring源码系列【二】——Spring框架概述

上图是 Spring4.x 的文档,目前5.x版本中的 Portlet 组件已经被废弃掉了,同时增加了用于异步响应式处理的 WebFlux 组件。红框框住的是比较重要的组件:

Core 组件是 Spring 所有组件的核心;

Bean 组件和 Context 组件是实现 IoC依赖注入的基础;

AOP 组件用于实现切面编程;

Web 组件包括 SpringMVC,是 Web 服务的控制层实现。

三、后续思路

Spring源码系列【二】——Spring框架概述

简单说 Spring 就 IoC、AOP,而 Context 和 Bean 又是实现 IoC 和 依赖注入的基础,所以在接下来的代码分析中也将围绕这几个重要的组件进行梳理,并从 Context 说起……

(本文完)

  • 我的微信
  • 微信扫一扫
  • weinxin
  • 微信公众号
  • 微信公众号(习惯沉淀)
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: