剑指Java自研框架,决胜Spring源码
提升面试的成功率和工作的效率,让你写出趋近于框架级的代码
课程在自研框架和Spring框架的穿插讲解中让大家逐渐熟悉Spring框架的脉络。通过从0搭建一个较为完备的Web框架来提升框架设计能力,辅以通俗易懂的Spring核心模块源码的讲解,带你了解Spring框架的设计思路。
〖课程目录〗:
- 第1章 课程导学与概览 2 节 | 9分钟
- 本章首先:纵观课程所有知识点。其次:讲解通用得学习成长路线;最后:明确学习本课程所需得前置要求。帮助小伙伴选择好的课,对的课,以及跟对师父,让学习成长事半功倍。
-
- 视频:1-1 剑指造轮子,决胜Spring源码 (06:49)
- 视频:1-2 学前需知 (01:58)
- 第2章 环境准备5 节 | 88分钟
- 本章将领小伙伴一起将Spring的源码环境搭建好。同时,咱们还会搭建业务项目的初始化环境,确保万事俱备。
-
- 视频:2-1 Spring模块梳理 (29:21)
- 视频:2-2 Spring源码的下载和编译 (17:56)
- 视频:2-3 Spring源码的下载和编译 (16:13)
- 视频:2-4 自研框架的整体介绍及雏形搭建 (20:22)
- 视频:2-5 本章小结 (03:21)
- 第3章 业务系统架子的构建【自研框架的起源】7 节 | 131分钟
- 本章从0去基于一个简单的业务:从需求分析、技术设计,代码实现。期间涵盖:经典得MVC架构以及相关设计模式。采用问题驱动式教学,先抛出问题启发思考对比多种方案,最终借鉴Spring框架DispatcherServlet解决问题。
-
- 视频:3-1 项目业务梳理、数据库和实体类的设计 (09:56)
- 视频:3-2 项目依赖配置以及门面模式讲解 (12:59)
- 视频:3-3 项目依赖配置以及门面模式讲解 (14:08)
- 视频:3-4 泛型讲解(上) (24:51)
- 视频:3-5 泛型讲解(下) (15:16)
- 视频:3-6 Service层代码架子的搭建 (19:12)
- 视频:3-7 Controller层代码架子的搭建 (33:50)
- 第4章 自研框架IOC实现前奏【从项目开发到框架开发的转换】 12 节 | 173分钟
- 本章引入工厂模式来优化自研框架架构,经过不断尝试,最终发现SpringIOC方式是最佳的框架选型。在调研的过程中,会扫清理解IOC的障碍,涉及常见的工厂模式、反射、注解的使用及其原理、控制反转原理等。
-
- 视频:4-1 尝试引入简单工厂模式 (11:53)
- 视频:4-2 尝试引入工厂方法模式 (10:38)
- 视频:4-3 尝试引入抽象工厂模式 (11:07)
- 视频:4-4 利器之反射 (13:01)
- 视频:4-5 反射之获取并操作构造函数 (16:08)
- 视频:4-6 反射之获取并操作成员变量 (14:05)
- 视频:4-7 反射之获取并操作成员方法 (12:14)
- 视频:4-8 必知必会的注解 (23:34)
- 视频:4-9 自定义注解的声明和使用 (26:26)
- 视频:4-10 注解背后的底层实现 (12:13)
- 视频:4-11 IOC前传 (17:43)
- 视频:4-12 本章小结 (03:34)
- 第5章 自研框架IoC容器的实现 【实战了解SpringIOC的脉络】11 节 | 185分钟
- 在攻克了自研IoC的外围阵地后,咱们开始攻克IoC容器的开发,涉及到容器本身的实现、依赖注入功能、注解的学以致用以及使用Paser模块来定位并解析被注解标记的元素。细节之处,涉及到了安全的单例写法等
-
- 视频:5-1 实现思路概述以及注解标签的创建 (10:43)
- 视频:5-2 根据package获取类集合之通过类加载器获取资源信息 (15:20)
- 视频:5-3 根据package获取类集合之实现Class对象的提取【上】 (15:29)
- 视频:5-4 根据package获取类集合之实现Class对象的提取【下】 (15:20)
- 视频:5-5 烂大街的单例真的足够安全吗 (13:10)
- 视频:5-6 无视反射和序列化攻击的单例 (14:07)
- 视频:5-7 容器的载体以及容器的加载 (27:06)
- 视频:5-8 提供容器对外操作的方法 (29:04)
- 视频:5-9 实现容器的依赖注入【上】 (19:01)
- 视频:5-10 实现容器的依赖注入【下】 (19:21)
- 视频:5-11 本章小结 (05:27)
- 第6章 SpringIoC容器的源码解析 【正式向Spring宣战】12 节 | 171分钟
- 本章首次攻入Spring源码阵地,对Spring核心:BeanDefinition,容器,Resource,ResourceLoader,BeanDefinitionReader等扫荡一遍。随后深入分析配置的定位、加载、解析和注册的源码流程。坚持学下去定见彩虹!
-
- 视频:6-1 挖掘切入源码的线索 (16:34)
- 视频:6-2 Bean与BeanDefinition (18:27)
- 视频:6-3 击破简单容器【上】 (11:58)
- 视频:6-4 击破简单容器【下】 (07:40)
- 视频:6-5 轰炸高级容器 (19:30)
- 视频:6-6 弄清Resource、ResourceLoader、容器之间的微妙关系 (21:29)
- 视频:6-7 ResourceLoader的使用者-BeanDefinitionReader (11:49)
- 视频:6-8 通过document对象解析出BeanDefinition实例 (17:33)
- 视频:6-9 BeanDefinition的注册 (14:20)
- 视频:6-10 xml配置的资源定位、加载、解析、注册全链路分析 (08:39)
- 视频:6-11 注解配置的资源定位、加载、解析、注册全链路概览 (17:42)
- 视频:6-12 本章小结 (04:30)
- 第7章 详解SpringIoC容器的初始化 【打通refresh方法的全链路】7 节 | 84分钟
- 本章开始扫荡容器初始化知识点,依次拔除掉容器级别以及Bean级别的后置处理器、Aware神兽召唤接口以及事件监听器模式等外围暗堡后,开始全面进攻容器通用的初始化链路,完成对容器初始化的全链路分析。
-
- 视频:7-1 进攻refresh方法前必会知识之PostProcessor (17:18)
- 视频:7-2 进攻refresh方法前必会知识之Aware及其子接口 (06:06)
- 视频:7-3 进攻refresh方法前必会知识之事件监听器模式(上) (13:42)
- 视频:7-4 进攻refresh方法前必会知识之事件监听器模式(下) (12:55)
- 视频:7-5 手撕Spring容器的刷新逻辑(上) (14:07)
- 视频:7-6 手撕Spring容器的刷新逻辑(下) (16:48)
- 视频:7-7 本章小结 (02:27)
- 第8章 精讲SpringIoC容器的依赖注入 【攻坚Bean实例的创建】13 节 | 197分钟
- 本章将是一场恶战,从源码层面上逐层了解Bean实例创建,以refresh方法里创建非延迟加载的单例getBean方法为入口,讲解Spring容器用来解决循环依赖的三级缓存,对主要生命周期的处理,打通IOC从初始化到使用的闭环。
-
- 视频:8-1 闪击依赖注入 (09:30)
- 视频:8-2 夺取doGetBean之从缓存获取Bean (24:54)
- 视频:8-3 夺取doGetBean之剩余逻辑的扫荡 (22:58)
- 视频:8-4 强攻Bean的创建 (18:41)
- 视频:8-5 doCreateBean之创建无属性的Bean实例 (13:38)
- 视频:8-6 doCreateBean之处理@Autowired以及@Value标签 (15:15)
- 视频:8-7 doCreateBean之剩余逻辑的扫荡 (14:21)
- 视频:8-8 单例循环依赖的解决 (14:06)
- 视频:8-9 面试常问问题之Spring对循环依赖的支持情况 (13:12)
- 视频:8-10 doGetBean之populateBean (16:38)
- 视频:8-11 -1 populateBean之剩余逻辑解析 (15:27)
- 视频:8-12 -2 populateBean之剩余逻辑解析 (10:57)
- 视频:8-13 本章小结 (06:32)
- 第9章 自研框架AOP的讲解与实现 【实战了解SpringAOP的核心脉络】16 节 | 263分钟
- 本章再次回到自研框架,先分析AOP相关核心知识,讲解CGLib和动态代理两种模式,以及Spring是如何运用AOP的。随后,动手实践自研框架的AOP模块,让自研框架的功能更加丰富,也为后续进击SpringAOP做好准备。
-
- 视频:9-1 前情回顾 (04:04)
- 视频:9-2 自上而下从左到右(上) (15:28)
- 视频:9-3 自上而下从左到右(下) (13:28)
- 视频:9-4 AOP的子民们 (20:17)
- 视频:9-5 SpringAOP的实现之代理模式讲解 (10:14)
- 视频:9-6 SpringAOP的实现之JDK动态代理 (22:29)
- 视频:9-7 SpringAOP的实现之CGLIB动态代理- (19:23)
- 视频:9-8 实现自研框架AOP1.0(一) (23:17)
- 视频:9-9 实现自研框架AOP1.0(二) (19:40)
- 视频:9-10 实现自研框架AOP1.0(三) (22:30)
- 视频:9-11 实现自研框架AOP1.0(四) (17:07)
- 视频:9-12 裹上AspectJ的外衣 (10:21)
- 视频:9-13 自研框架AOP2.0的实现(上) (18:54)
- 视频:9-14 -1自研框架AOP2.0的实现(下) (18:19)
- 视频:9-15 -2 自研框架AOP2.0的实现(下) (19:57)
- 视频:9-16 本章小结 (06:33)
- 第10章 SpringAOP的源码解析 【精准打击SpringAOP的核心源码】13 节 | 201分钟
- 本章咱们将来个“回马枪”,再次杀回Spring里,继续手撕SpringAOP的源码.。
-
- 视频:10-1 BeanPostProcessor及其家族成员(上) (16:01)
- 视频:10-2 BeanPostProcessor及其家族成员(下) (10:33)
- 视频:10-3 为什么在启动类加上@EnableAspectJAutoProxy就能支持AOP (16:28)
- 视频:10-4 AutoProxyCreator及其主要的家庭成员 (13:04)
- 视频:10-5 横切逻辑的加载分析(上) (24:00)
- 视频:10-6 横切逻辑的加载分析(中) (22:56)
- 视频:10-7 横切逻辑的加载分析(下) (19:48)
- 视频:10-8 筛选匹配的横切逻辑实例(上) (12:28)
- 视频:10-9 筛选匹配的横切逻辑实例(下) (13:53)
- 视频:10-10 创建动态代理(上) (17:52)
- 视频:10-11 创建动态代理(中) (10:23)
- 视频:10-12 创建动态代理(下) (19:54)
- 视频:10-13 本章小结 (03:06)
- 第11章 自研框架MVC的实现 【实战了解SpringMVC的核心脉络】13 节 | 196分钟
- 为了让自研框架对外可用,咱们将打通Web框架部分,实现通用的请求分发流程..
-
- 视频:11-1 前情回顾 (07:18)
- 视频:11-2 自研框架MVC的整体脉络 (06:48)
- 视频:11-3 DispatcherServlet的重构 (14:49)
- 视频:11-4 责任链RequestProcessorChain的实现 (17:35)
- 视频:11-5 RequestProcessor矩阵的实现(1) (24:26)
- 视频:11-6 RequestProcessor矩阵的实现(2) (14:28)
- 视频:11-7 RequestProcessor矩阵的实现(3) (19:21)
- 视频:11-8 RequestProcessor矩阵的实现(4) (21:32)
- 视频:11-9 RequestProcessor矩阵的实现(5) (07:04)
- 视频:11-10 ResultRender矩阵的实现(上) (20:05)
- 视频:11-11 ResultRender矩阵的实现(中) (16:23)
- 视频:11-12 ResultRender矩阵的实现(下) (17:36)
- 视频:11-13 本章小结 (08:33)
- 第12章 SpringMVC流程分析【摸通SpringMVC的应用】9 节 | 111分钟
- 本章,咱们来分析Spring经典的Web应用–SpringMVC的源码
-
- 视频:12-1 springmvc的环境搭建以及初始化入口分析(上) (14:20)
- 视频:12-2 spring mvc的环境搭建以及初始化入口分析(中) (12:30)
- 视频:12-3 spring mvc的环境搭建以及初始化入口分析(下) (12:27)
- 视频:12-4 Spring容器是执行refresh方法的入口 (14:27)
- 视频:12-5 Request与Controller方法映射的创建(上) (16:06)
- 视频:12-6 Request与Controller方法映射的创建(下) (11:11)
- 视频:12-7 从映射关系里获取处理请求的逻辑实例 (13:54)
- 视频:12-8 请求参数与执行方法的形参的绑定以及请求的处理 (10:52)
- 视频:12-9 本章小结 (04:36)
- 第13章 以终为始【全课总结】1 节 | 7分钟
- 终点又是新的一个起点。首先恭喜各位小伙伴即将完成本课程学习,本章将带领大家回顾全课,内化成自己核心知识体系。最后,我将在下一个里程碑等着各位小伙伴~
-
- 视频:13-1 课程总结 (06:40)
〖视频截图〗:
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。