惊讶,CRUD搬砖两三年了,不会阅读Spring源码?

91 阅读3分钟

连读同事写的代码都费劲,还读Spring? 咋的,Spring 很难读!

这个与我们码农朝夕相处的 Spring,就像睡在你身边的媳妇,你知道找她要吃、要喝、要零花钱、要买皮肤。但你不知道她的仓库共有多少存粮、也不知道她是买了理财还是存了银行。🍑开个玩笑,接下来我要正经了!

一、为什么Spring难读懂?

为什么 Spring 天天用,但要想去读一读源码,怎么就那么难!因为由Java和J2EE开发领域的专家 Rod Johnson 于 2002 年提出并随后创建的 Spring 框架,随着 JDK 版本和市场需要发展至今,至今它已经越来越大了!

当你阅读它的源码你会感觉:

怎么这代码跳来跳去的,根本不是像自己写代码一样那么单纯
为什么那么多的接口和接口继承,类A继承的类B还实现了类A实现的接口X
简单工厂、工厂方法、代理模式、观察者模式,怎么用了会有这样多的设计模式使用
又是资源加载、又是应用上下文、又是IOC、又是AOP、贯穿的还有 Bean 的声明周期,一片一片的代码从哪下手
怎样,这就是你在阅读 Spring 遇到的一些列问题吧?其实不止你甚至可以说只要是从事这个行业的码农,想读 Spring 源码都会有种不知道从哪下手的感觉。

如何学?

所以我想了个办法,既然 Spring 太大不好了解,那么我就看书站在巨人的肩膀上学习肯定是很好的一个途径,但光看书肯定枯燥无味,看书结合视频才是快速掌握阅读源码的技巧!今天,互联网雷锋(小编我)就从百度的朋友手上整到了一套他们内部强力进阶学习的Spring源码高阶手册!【+jcc4261获取】不多bb我们直接上干货!

Spring源码速成笔记

第1部分,核心实现是Spring功能的基础,也是企业应用部分的基础,主要对容器以及AOP功能实现做了具体的分析。

  • Spring整体架构和环境构建

  • Spring的整体架构

  • 容器的基本实现

  • Spring的结构组成

  • 默认标签的解析

  • bean标签的解析及注册

  • 自定义标签的解析

  • 提取自定义标签处理器

  • bean的加载

  • 缓存中获取单例bean

  • 循环依赖

  • 容器的功能扩展

  • 功能拓展

  • AOP

  • 动态AOP使用实例

  • 静态AOP使用实例

第2部分,企业应用:在核心实现部分的基础上围绕企业应用用的模块进行讨论,这些模块包括Spring整合JDBC、Spring整合MyBatis、事务、SpringMVC、远程服务、Spring消息服务等,方便大家在日常开发中更加高效地使用Spring.

  • 数据库连接JDBC

  • Spring连接数据库程序实现( JDBC )

  • queryForobject

  • 整合MyBatis

  • MyBatis独立使用

  • Spring整合MyBatis

  • 事务

  • JDBC方式下的事务使用实例

  • 事务自定义标签

  • Spring MVC

  • 异常视图的处理

  • 远程服务

  • 客户端实现

  • Spring消息

  • Spring整合ActiveMQ

第3部分,Spring Boot:对近期流行的Spring Boot的体系原理进行分析,剥离其神秘的面纱。Spring Boot作为Spring外的一个独立分支,可以说将Spring的扩展能力应用得出神入化,仔细研读后一定会受益匪浅。

  • Spring Boot体系原理

  • Spring Boot源码安装

  • Starter自动化配置原理

  • 属性自动化配置实现

  • Tomcat启动