1. 程式人生 > >書籍摘要-spring 源碼深度解析

書籍摘要-spring 源碼深度解析

不同的 jdbc context 數據庫連接 實現類 spa api 循環 摘要

第 1 章:spring 整體架構和環境搭建

  spring 是分層的,主要分為網絡層、數據庫連接層、核心容器層、 AOP 層和測試層。

  核心容器中實現了 IOC 和依賴註入,方法是 BeanFactory。數據庫連接層封裝了 JDBC,兼容多種 ORM 框架。


第 2 章:容器的基本實現

  DefaultListableBeanFactory 是加載 Bean 的核心類,XmlBeanFactory 繼承了這個類。

  分三步走,首先獲取 XML 文件驗證模式原理,然後將文件轉換成 Document 對象,最後解析並註冊BeanDefinition。

  加載資源文件原理?首先定義 Resource 接口封裝了底層資源。然後針對不同來源的資源封裝了不同的實現類。最後將資源控制權交給 XmlBeanDefinitionReader。

  獲取 XML 文件驗證模式原理?判斷是否包含 DOCTYPE,包含就是 DTD,否則就是 XSD。


第 5 章:bean 的加載

  這章以接口 BeanFactory 及其實現類 XmlBeanFactory 為核心進行源碼分析。

  spring 將循環依賴分為三種:一是構造器類型,這種無法解決,只能拋出 BeanCurrentlyInCreationException。二是 setter 類型,這種單例情況能夠解決,方式是提前暴露創建中的 bean。三是 “prototype” 作用域的 bean,這種同樣無法解決,因為 spring 不緩存 “prototype” 作用域的 bean ,無法提前暴露創建中的 bean。

  循環依賴解決方案?spring 創建單例 bean 時,為了避免循環依賴,不等 bean 創建完成就將其 ObjectFactory 暴露到緩存中,提供給其它 bean 依賴。


第 6 章:容器功能擴展

  這章以接口 ApplicationContext 為核心進行源碼分析。


第 7 章:AOP

  這章以 AOP 實現原理為核心進行源碼分析。


第 12 章:spring 消息

  Java Message Service( java 消息服務 ),簡稱 JMS,是 java 平臺面向消息中間件的 api,用於程序間消息的異步通信。

  spring 通過整合如 activeMQ 等消息中間件,可以實現 JMS。

書籍摘要-spring 源碼深度解析