1. 為什么要學(xué)習(xí)Spring?
核心模塊-core
- JavaEE中,為了解決復(fù)雜的業(yè)務(wù)對(duì)象之間的依賴問題,Spring將IoC(Inversion of Control)思想進(jìn)行了落地,提供了
Spring IoC Container. - 提供了面向切面編程框架-
Spring AOP,對(duì)OOP進(jìn)行補(bǔ)充.
不僅如此,Spring還提供了:
- 應(yīng)用程序中的資源訪問體系-
Resources. - 事件監(jiān)聽器模式支持-
Events. - 國(guó)際化-
i18n. - 校驗(yàn)器-
Validation. - Spring的EL表達(dá)式-
SpEL.
...
可以說(shuō),Spring基本提供了JavaEE所需要的基本框架,更加詳細(xì)的介紹可以訪問Spring官網(wǎng).
Spring讓編寫JavaEE程序變得更加簡(jiǎn)單.
Spring提供了一系列關(guān)于Java Web的解決方案
- Servlet API-
Spring Web MVC. - 安全-
Spring Security. - 數(shù)據(jù)層訪問-
Spring Data. - 云原生支持-
Spring Cloud. - 消息隊(duì)列-
Spring AMQP. - 響應(yīng)式編程-
Spring WebFlux - 自動(dòng)化裝配-
Spring Boot.
要學(xué)習(xí)上面的知識(shí),你需要學(xué)好Spring.
2. 博客源碼解讀計(jì)劃
我是一個(gè)Java開發(fā)工程師,目前正在使用Spring開發(fā)Java應(yīng)用程序.本博客會(huì)分享Spring系列相關(guān)的一些知識(shí).為了讓讀者更好地按序閱讀文章,此文章作為目錄來(lái)幫你檢索到具體的文章地址.
以下是我發(fā)布的文章,以后的更新我也會(huì)將鏈接放置到下面的鏈接中.
如果覺得文章不錯(cuò),希望你給予點(diǎn)贊支持.感激不盡.
關(guān)于平臺(tái)的說(shuō)明
鏈接前綴代表博客平臺(tái):
例如:
jianshu-簡(jiǎn)書.
juejin-掘金.
平臺(tái)間的內(nèi)容幾乎一致.
2.1 Spring IoC
2.1.1 Spring IoC編程思想
-
淺談IOC編程思想
jianshu:淺談IOC編程思想
2.1.2 下載源碼以及編譯
-
Spring源碼(一)實(shí)例化容器的兩種方式
jianshu:Spring源碼(一)實(shí)例化容器的兩種方式
2.1.3 Bean的定義-BeanDefiniton
-
Bean與BeanDefinition
jianshu:Bean與BeanDefinition
juejin:Bean的定義-BeanDefinition -
了解Spring的BeanDefinition體系
jianshu:RootBeanDefinition、GenericBeanDefinition、ChildBeanDefinition
juejin:了解Spring的BeanDefinition體系
2.1.4 Spring容器
-
Spring中的內(nèi)部容器-BeanFactory
jianshu:淺談BeanFactory
juejin:Spring中的內(nèi)部容器-BeanFactory -
Spring容器-ApplicationContext
jianshu:淺談ApplicationContext
juejin:Spring容器-ApplicationContext -
Aware接口是什么?
jianshu:Spring的Aware接口-裝配
juejin:Spring的Aware接口-裝配 -
后置處理器-PostProcessor
jianshu:Spring的PostProcessor-后置處理器
juejin:Spring的PostProcessor-后置處理器 -
Spring中的事件-Events
jianshu:詳解Spring中的事件監(jiān)聽器模式
juejin:Spring中的事件監(jiān)聽器模式
2.1.5 資源定位與加載
-
Spring的Resources體系
jianshu:淺談Spring的Resources體系
juejin:Spring的Resources體系 -
Spring如何定位加載BeanDefinition-BeanDefinitionReader
XML:
jianshu:BeanDefinitionReader-將xml解析到BeanDefinition的執(zhí)行者
juejin:BeanDefinitionReader-將xml解析到BeanDefinition的執(zhí)行者
注解:
jianshu:基于注解的AnnotationConfigApplicationContext組件掃描過(guò)程
juejin:Spring基于注解容器組件掃描過(guò)程 -
注冊(cè)BeanDefinition-BeanDefinitionRegistry
jianshu:BeanDefinitionRegistry-BeanDefinition注冊(cè)
juejin:BeanDefinitionRegistry-BeanDefinition注冊(cè)
2.1.6 refresh
-
容器刷新時(shí)發(fā)生了什么?
jianshu:容器上下文的refresh概述.
juejin:容器上下文的refresh概述.
2.1.7 依賴注入-DI
-
依賴注入的總體流程
jianshu:DI-Spring的依賴注入淺析
juejin:Spring的依賴注入淺析-DI -
Spring的getBean路線-doGetBean
jianshu:Spring的getBean路線-doGetBean
juejin:Spring的getBean路線-doGetBean -
Spring的getBean路線-createBean
jianshu:Spring的getBean路線-createBean
juejin:Spring的getBean路線-createBean -
Spring的getBean路線-doCreateBean
jianshu:Spring的getBean路線-doCreateBean
juejin:Spring的getBean路線-doCreateBean -
Spring是如何做Bean屬性填充的(@Autowired原理解析)-populateBean
jianshu:Spring是如何做Bean屬性填充的-populateBean
juejin:Spring是如何做Bean屬性填充的(@Autowired原理解析)-populateBean -
影響Spring Bean生命周期的BeanPostProcessor
jianshu:影響Spring Bean生命周期的BeanPostProcessor
juejin:影響Spring Bean生命周期的BeanPostProcessor
2.2 Spring AOP
2.2.1 AOP源碼前置-概念與基本原理
-
Spring AOP是什么?怎么用?
jianshu:Spring AOP基本概念介紹與入門
juejin:Spring AOP基本概念介紹與入門 -
Spring實(shí)現(xiàn)AOP代理的原理是什么?
jianshu:Spring AOP代理原理-JDK動(dòng)態(tài)代理和CGLIB代理
juejin:Spring AOP代理原理-JDK動(dòng)態(tài)代理和CGLIB代理
2.2.2 剖析Spring AOP源碼
-
@EnableAspectJAutoProxy原理解析
jianshu:@EnableAspectJAutoProxy原理解析
juejin:@EnableAspectJAutoProxy原理解析 -
AnnotationAwareAspectJAutoProxyCreator-@AspectJ的解析器
jianshu:AnnotationAwareAspectJAutoProxyCreator-@AspectJ的解析器
juejin:AnnotationAwareAspectJAutoProxyCreator-@AspectJ的解析器 -
Spring AOP如何匹配合適的Advisor-getAdvicesAndAdvisorsForBean
jianshu:AOP如何匹配合適的Advisor-getAdvicesAndAdvisorsForBean
juejin:AOP如何匹配合適的Advisor-getAdvicesAndAdvisorsForBean -
Spring AOP創(chuàng)建動(dòng)態(tài)代理的過(guò)程
jianshu:Spring AOP創(chuàng)建動(dòng)態(tài)代理的過(guò)程
juejin:Spring AOP創(chuàng)建動(dòng)態(tài)代理的過(guò)程
2.2.3 剖析Spring MVC源碼
-
Spring MVC與Servlet標(biāo)準(zhǔn)及總體設(shè)計(jì)思想
jianshu:Spring MVC與Servlet標(biāo)準(zhǔn)及總體設(shè)計(jì)思想
juejin:Spring MVC與Servlet標(biāo)準(zhǔn)及總體設(shè)計(jì)思想 -
HandlerMapping的初始化
jianshu:HandlerMapping的初始化 -
Spring MVC是如何處理請(qǐng)求的
jianshu:Spring MVC是如何處理請(qǐng)求的