原创 14.SpringMVC啓動與請求處理流程解析

原理流程圖:https://www.processon.com/view/link/63f1d5cc2f69f86c1f96ee9c SpringMVC的作用毋庸置疑,雖然我們現在都是用SpringBoot,但是SpringBoot中仍然是

原创 通過代碼分析spring中bean生命週期的過程

今天我們編寫一個簡單的demo來分析一下spring中整個bean的生命週期 編寫Demo 1. 首先我們定義一個BeanFactoryProcessor的類,目的是爲了看出PostProcessBeanFactory接口被調用的時間點

原创 13.Spring 6.0及SpringBoot 3.0新特性解析

https://github.com/spring-projects/spring-framework/wiki/What%27s-New-in-Spring-Framework-6.x 最核心的就是Spring AOT。 GraalVM文

原创 12.Spring之事務底層源碼解析

@EnableTransactionManagement工作原理 開啓Spring事務本質上就是增加了一個Advisor,但我們使用@EnableTransactionManagement註解來開啓Spring事務時,該註解代理的功能就是

原创 11.Spring之AOP底層源碼解析(下)

ProxyFactory選擇cglib或jdk動態代理原理 ProxyFactory在生成代理對象之前需要決定到底是使用JDK動態代理還是CGLIB技術: // config就是ProxyFactory對象 // optimize爲t

原创 8.Spring之配置類解析源碼解析

解析配置類 解析配置類流程圖:https://www.processon.com/view/link/5f9512d5e401fd06fda0b2dd 解析配置類思維腦圖:https://www.processon.com/view/lin

原创 9.Spring之整合Mybatis底層源碼解析

整合核心思路 由很多框架都需要和Spring進行整合,而整合的核心思想就是把其他框架所產生的對象放到Spring容器中,讓其成爲Bean。 比如Mybatis,Mybatis框架可以單獨使用,而單獨使用Mybatis框架就需要用到Myba

原创 10.Spring之AOP底層源碼解析(上)

動態代理 代理模式的解釋:爲其他對象提供一種代理以控制對這個對象的訪問,增強一個類中的某個方法,對程序進行擴展。 比如,現在存在一個UserService類: public class UserService { public

原创 7.Spring之啓動過程源碼解析

前言分析 通常,我們說的Spring啓動,就是構造ApplicationContext對象以及調用refresh()方法的過程。 首先,Spring啓動過程主要做了這麼幾件事情: 構造一個BeanFactory對象 解析配置類,得到Be

原创 6.Spring之推斷構造方法源碼解析

推斷構造方法流程圖:https://www.processon.com/view/link/5f97bc717d9c0806f291d7eb AutowiredAnnotationBeanPostProcessor中推斷構造方法不同情況思

原创 5.Spring之循環依賴底層源碼解析

什麼是循環依賴? 很簡單,就是A對象依賴了B對象,B對象依賴了A對象。 比如: // A依賴了B class A{ public B b; } // B依賴了A class B{ public A a; } 那麼循環依賴是個問題

原创 4.Spring之依賴注入源碼解析

Spring中到底有幾種依賴注入的方式? 首先分兩種: 手動注入 自動注入 手動注入 在XML中定義Bean時,就是手動注入,因爲是程序員手動給某個屬性指定了值。 <bean name="userService" class="co

原创 3.Spring之Bean生命週期源碼解析

Spring最重要的功能就是幫助程序員創建對象(也就是IOC),而啓動Spring就是爲創建Bean對象做準備,所以我們先明白Spring到底是怎麼去創建Bean的,也就是先弄明白Bean的生命週期。 Bean的生命週期就是指:在Spri

原创 1.Spring底層核心原理解析

本篇文章會把Spring中核心知識點都給大家進行串講,讓大家對Spring的底層有一個整體的大致瞭解,比如: Bean的生命週期底層原理 依賴注入底層原理 初始化底層原理 推斷構造方法底層原理 AOP底層原理 Spring事務底層原理

原创 2.Spring之底層架構核心概念解析

前面一篇文章,我們大概瞭解了Spring中的一些概念和底層工作流程,本篇文章開始將真正講一些Spring中的概念和工作流程。 本篇文章的內容,是後續看Spring源碼所必備的,防止後續看源碼的過程中,遇到不會的概念得單獨跳出來學習。 Be