
《Spring源码》
Spring源码深入学习
CoderBruis
菜是原罪
展开
-
深入浅出SpringBoot源码——监听器与事件机制
前言先看下Spring官方文档对于事件以及监听器的解释与说明。监听器官方说明总结起来就是几点:除了通常的Spring框架自带的事件例如:ContextRefreshedEvent,SpringApplication还会发送一些额外的事件。对于事件的监听,需要通过监听器来实现。在SpringBoot中,监听器可以通过三种方式来注册,① 通过SpringApplication.addListeners(…)② 通过SpringApplicationBuilder.listeners(…)③原创 2020-06-23 22:50:34 · 1105 阅读 · 2 评论 -
深入浅出SpringBoot源码——系统初始化器
前言前一章已经讲解了SpringBoot的SpringFactoriesLoader类的功能以及作用,即读取spring.factories文件中的工厂类,其中就包括了系统初始化器。在SpringBoot中,系统初始化器名称为ApplicationContextInitializer,它是一个接口,只定义了一个initialize方法。下面将详细介绍下SpringBoot的系统初始化器的原理以及作用,并且自定义一个系统初始化器,并在此基础上讲解下常见的使用场景。正文1. 初始ApplicationCo原创 2020-06-08 15:25:32 · 699 阅读 · 2 评论 -
深入浅出SpringBoot源码——SpringFactoriesLoader
前言 要想深入学习源码,那么就得先学会读懂它的注释,毕竟是一手知识嘛。大家都知道SpringBoot是一款多么优秀的框架,它给Java开发者带来了极大的便利,再也不用去整合SSM了,这里就不继续赞美SpringBoot了。相信大家都会很好奇SpringBoot底层源码是怎么运行的?它是怎么神奇的让我们可以快速开发JAVAEE企业级项目?如何快速整合第三方框架?接下来的深入学习SpringBoot源码系列,让我和各位小伙伴们一同学习SpringBoot底层源码。这里先学习下 SpringFactories原创 2020-06-05 14:21:13 · 839 阅读 · 0 评论 -
深入学习SpringAOP源码(二)—— 深入AnnotationAwareAspectJAutoProxyCreator
前言版本:【Spring 5.1.4】、【SpringAOP 5.1.4】经过博文深入学习SpringAOP源码(二)—— AnnotationAwareAspectJAutoProxyCreator的介绍之后,相信大家都了解到了AnnotationAwareAspectJAutoProxyCreator试如何被解析然后注册到SpringIOC中的。接下来开始深入学习AnnotationAwa...原创 2019-08-23 16:51:13 · 576 阅读 · 0 评论 -
深入学习SpringAOP源码(一)——注册AnnotationAwareAspectJAutoProxyCreator
前言版本:【Spring 5.1.4】、【SpringAOP 5.1.4】原本想从网上博客学下SpringAOP源码逻辑,结果都看的我一头雾水,知识点都是东一块西一块的,根本都无法了解到SpringAOP源码逻辑的来龙去脉。本人干脆自己通过断点的方式,从SpringAOP源码一步一步打断点来学习SpringAOP源码,并通过系列博文的形式记录一下自己对SpringAOP的理解与总结。下面来看...原创 2019-08-23 10:30:54 · 495 阅读 · 0 评论 -
深入Spring源码系列(补充篇)——程序调用Spring源码
前言前段时间一直忙于其他事情,没空下来继续研究Spring源码。最近有空又重拾Spring源码,打算继续深入研究。之前下载好了Spring源码之后,并成功导入到IDEA中了,可是光导入源码但是没有调用Spring源码就显得特别的菜了,且不利于深入学习Spring源码。本人花了点时间来尝试使用IDEA程序调用Spring源码,遂写下这篇文章来记录下实现过程。正文在系列文章第一篇中,已经成功下...原创 2019-06-26 10:13:52 · 2606 阅读 · 11 评论 -
深入Spring源码系列(二)——深入Spring容器,通过源码阅读和时序图来彻底弄懂Spring容器(下)
前言继上一篇文章深入了解了在普通的Spring应用程序中如何创建并启动SpringIOC容器的,下面,深入学习一下在web容器中,是如何创建、初始化并启动SpringIOC容器的。Spring版本:Spring5-0-3在web容器中初始化spring容器相信读者都能够用IDE搭建出基于Spring的web应用程序,例如SSM框架(不会的百度一下吧,这里就不讲解了)。在搭建SSM框架的时...原创 2019-01-16 12:21:02 · 788 阅读 · 0 评论 -
深入Spring源码系列(二)——深入Spring容器,通过源码阅读和时序图来彻底弄懂Spring容器(上)
前言Spring版本: Spring5-0-3Spring容器就相当于一个大的水桶,里面装着很多水——bean对象。bean对象就是一个普通的pojo对象。进入正题在学习Spring容器之前,先来看看beans是怎么被加载的??下面介绍Spring最核心的两个类。DefaultListableBeanFactoryDefaultListableBeanFactory是整个bean加载...原创 2019-01-06 18:20:03 · 1986 阅读 · 2 评论 -
深入Spring源码系列(一)——导入Spring源码包
前言——万里长征的第一步要学习Spring源码,导入Spring源码到IDE是必不可少的一步,因为Spring源码各个包、各个类之间的各种关联关系非常复杂。如果仅仅是通过Spring源码文档来看,相信没多少人能坚持学下去。因此将Spring源码包导入IDE是非常必要的。本人使用IDEA较多,所以也就将Spring源码导入至IDEA中。准备工作Spring源码包下载在本地磁盘下载Spring...原创 2019-01-05 11:17:36 · 1634 阅读 · 3 评论 -
深入学习SpringAOP源码(三)——揭开JDK动态代理和CGLIB代理的神秘面纱
前言版本:【Spring 5.1.4】、【SpringAOP 5.1.4】经过前两个章节的介绍,已经了解了Spring是如何注册解析AnnotationAwareAspectJAutoProxyCreator,然后AnnotationAwareAspectJAutoProxyCreator又是如何解析通知、创建代理,创建代理的目的又是什么呢?那么接下来本片文章将从深入解析源码的方式并借以《深入...原创 2019-08-26 18:38:58 · 664 阅读 · 0 评论