自从看了谷歌大神拼S强撸的Spring源码笔记,我从渣渣练成了钢铁

闲言碎语

首先说说Spring高级框架,我把Spring高级框架分为三个部分:

  • ssh=spring+struts+hibernate
  • ssm=spring+springmvc+mybatis
  • spring全家桶=脚手框架springboot、微服务框架springcloud等等

今天要讲的就是spring高级源码,读源码绝对算得上是一件费时费力的工作,需要读者耗费大量的时间去完成,但是一旦你认真去做了,你可以更好的掌握框架;更好的处理代码中出现的问题或者bug;同时离架构师又更进了一步。

Spring是一 个分层非常清晰并且依赖关系、职责定位非常明确的轻量级框架,主要包括几个大模块:

  • 数据处理模块
  • Web模块
  • AOP (Aspect Oriented Programming) /Aspects模块
  • Core Container模块和Test模块

spring依靠这些基本模块, 实现了一个令人愉悦的融合了现有解决方案的零侵入的轻量级框架。

不多说,一起跟着谷歌大神抽丝剥茧,把spring核心部分撕碎,彻底读懂spring源码,理解框架,本文一共分为七个部分,内容较多,小编下面以文字+截图形式为大家展示,源码笔记请【转发+关注】后私信关键词“源码”免费获取!

Spring概述

  • Spring简介

Spring 是分层的 full-stack(全栈) 轻量级开源框架,以 IoC和AOP为内核,提供了展现层SpringMVC 和业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,已经成为使用最多的 Java EE 企业应用开源框架。

  • Spring发展历程
  • Spring的优势
  • Spring的核心结构(如下图)
  • Spring的框架版本

自从看了谷歌大神拼S强撸的Spring源码笔记,我从渣渣练成了钢铁_第1张图片

 

Spring的核心思想

IOC和AOP不是spring提出的,在spring之前就已经存在,只不过更偏向于理论化,spring在技术层次把这两个思想做了非常好的实现(Java)

IoC

  • 什么是IoC
  • IoC解决了什么问题
  • IoC和DI的区别

自从看了谷歌大神拼S强撸的Spring源码笔记,我从渣渣练成了钢铁_第2张图片

 

AOP

  • 什么是AOP
  • AOP在解决什么问题
  • 为什么叫做面向切面编程

自从看了谷歌大神拼S强撸的Spring源码笔记,我从渣渣练成了钢铁_第3张图片

 

手写实现 IoC 和 AOP

上个部分我们理解了IoC和AOP思想,我们先不考虑Spring是如何实现这两个思想的,此处准备了一个【银行转账】的案例,请分析该案例在代码层次有什么问题 ?分析之后使用我们已有知识解决这些问题(痛点)。其实这个过程我们就是在一步步分析并手写实现 IoC和AOP。

  • 银行转账界面
  • 银行转账案例表结构
  • 银行转账案例代码调用关系
  • 银行转账案例关键代码
  • 银行转账案例代码问题分析
  • 问题解决思路
  • 案例代码改造

自从看了谷歌大神拼S强撸的Spring源码笔记,我从渣渣练成了钢铁_第4张图片

 

自从看了谷歌大神拼S强撸的Spring源码笔记,我从渣渣练成了钢铁_第5张图片

 

Spring IOC 应用

Spring IoC基础

  • BeanFactory与ApplicationContext区别
  • 纯xml模式
  • xml与注解相结合模式
  • 纯注解模式

自从看了谷歌大神拼S强撸的Spring源码笔记,我从渣渣练成了钢铁_第6张图片

 

Spring IOC高级特性

  • lazy-Init 延迟加载
  • FactoryBean 和 BeanFactory
  • 后置处理器

自从看了谷歌大神拼S强撸的Spring源码笔记,我从渣渣练成了钢铁_第7张图片

 

Spring IOC源码深度剖析

Spring IoC容器初始化主体流程

  • Spring IoC的容器体系
  • Bean生命周期关键时机点
  • Spring IoC容器初始化主流程

自从看了谷歌大神拼S强撸的Spring源码笔记,我从渣渣练成了钢铁_第8张图片

 

BeanFactory创建流程

  • 获取BeanFactory子流程
  • BeanDefinition加载解析及注册子流程

Bean创建流程

lazy-init 延迟加载机制原理

Spring IoC循环依赖问题

  • 什么是循环依赖
  • 循环依赖处理机制

自从看了谷歌大神拼S强撸的Spring源码笔记,我从渣渣练成了钢铁_第9张图片

 

Spring AOP 应用

AOP本质:在不改变原有业务逻辑的情况下增强横切逻辑,横切逻辑代码往往是权限校验代码、日志代码、事务控制代码、性能监控代码。

AOP 相关术语

  • 业务主线
  • AOP 术语

自从看了谷歌大神拼S强撸的Spring源码笔记,我从渣渣练成了钢铁_第10张图片

 

Spring中AOP的代理选择

Spring中AOP的配置方式

Spring中AOP实现

  • XML 模式
  • XML+注解模式
  • 注解模式

Spring 声明式事务的支持

自从看了谷歌大神拼S强撸的Spring源码笔记,我从渣渣练成了钢铁_第11张图片

 

Spring AOP源码深度剖析

代理对象创建

  • AOP基础用例准备
  • 时机点分析
  • 代理对象创建流程

自从看了谷歌大神拼S强撸的Spring源码笔记,我从渣渣练成了钢铁_第12张图片

 

Spring声明式事务控制

  • @EnableTransactionManagement
  • 加载事务控制组件

自从看了谷歌大神拼S强撸的Spring源码笔记,我从渣渣练成了钢铁_第13张图片

 

总结

这份满满都是干货的Spring高级源码笔记是由华南谷歌架构师总结出来的,这位大佬对于Spring框架的理解程度真的以及到了一个“恐怖变态”的地步了,之前小编还看过这个大佬的一个视频,讲的非常nb,跪服!

想要的朋友赶紧【转发+关注+评论】支持一下,然后私信小编关键词“源码”就可以获取到免费下载方式!先到先得!

你可能感兴趣的:(Spring,源码,笔记,Java,软件开发)