Spring原始碼解析學習 一

2021-10-08 11:28:06 字數 1720 閱讀 2844

core container (核心容器)

beans (基礎概念是beanfactory),用於訪問配置檔案、建立和管理bean,以及ioc 和di操作相關。

core:spring 框架基本的核心工具類。

context:構建於core和beans模組基礎之上,繼承了beans的特性,提供了對國際化、事件傳播、資源載入和對context的透明建立的支援。

expression language提供強大的表示式語言,用於在執行時查詢和操縱物件。

aop:面向切面程式設計的實現,通過定義方法***和切點,將邏輯**分開。

aspects模組提供了aspectj的整合支援。

web:為基於web應用程式提供上下文。

data access/integration: 對資料訪問進行封裝的所有類(jdbc模組)。物件-關係對映api,如mybatis、hibernate(orm模組)

beanfactory bf = new xmlbeanfactory(new classpathresource("beans.xml"));

object bean = bf.getbean("test");

進入方法xmlbeanfactory檢視原始碼

分析doloadbeandefinitions方法

返回第2部分第一張圖截圖中的registerbeandefinitions方法進行解析

判斷命名空間是預設解析還是使用自定義命名空間解析進行bean的解析。

預設命名空間解析

追蹤到parsebeandefinitionelement(element ele)裡的下一段**中

到這裡便完成了xml檔案到genericbeandefinition的轉換,xml中所有的配置資訊都可以在genericbeandefinition例項中找到對應的配置資訊。genericbeandefinition是abstractbeandefinition的子類,大部分通用屬性都儲存在abstractbeandefinition中。

Spring原始碼解析(一)

本系列總結spring原始碼深度解析這本書,因為已經讀了70頁,所以前面的稍微過一下,第三章開始重點解析。知識點一 aspectj的用法 比如有乙個helloworldl類 public class helloworld 使用aspectj外掛程式後,在sayhello方法前後新增邏輯,只需要這樣做...

spring原始碼解析 一

注入模型 找bean和注入bean使用不一樣的技術.例如 bytype 先根據型別找bean,再根據set方法注入bean.mode 模式 explanation 功能說明 no 預設 無自動裝配。bean引用必須由ref元素定義。對於較大的部署,建議不要更改預設設定,因為明確指定協作者可以提供更好...

spring原始碼解析

spring源 解析 一 ioc容器 spring源 解析 二 ioc容器在web容器中的啟動 spring源 解析 三 spring jdbc spring源 解析 四 spring mvc spring源 解析 五 spring aop獲取proxy spring源 解析 六 spring宣告式...