spring原始碼閱讀(1)

2021-08-22 10:10:55 字數 927 閱讀 9177

spring核心是ioc和aop,aop的底層是**實現。

**分為兩種:jdk動態**和cglib**

區別:動態**:被**物件是要實現乙個介面,**類首先要拿到這個介面,來進行強制轉換,通過反射來生成**物件

public class meipo implements invocationhandler

@override

public object invoke(object proxy, method method, object args)throws throwable

}

public class test 

// 動態的**的原理:

// 1:拿到被**物件的引用,然後獲取他的介面

// 2:jdk重新生成乙個類,同時實現被**物件鎖實現的介面

// 3:拿到被**物件的引用

// 4:重新生成乙個class位元組碼物件

// 5:編譯

// **模式必要條件:

// 兩個物件:執行者和被**物件

// 執行者要拿到被**物件引用

}

cglib**:cglib**是生成乙個被**物件的子類,來重寫父類的方法(被**物件),然後引用賦值給父類

public class meipo2 implements methodinterceptor

@override

public object intercept(object arg0, method arg1, object arg2,methodproxy arg3) throws throwable

}

public class test2 

}

好了,簡單記錄下~~

Spring 原始碼閱讀(1)

這週在學習spring的原始碼,常常迷失在 森林中,因為英語水平不高,常常需要借助google翻譯幫忙解釋注釋,所以速度比較慢。下面是我模擬spring的解析xml,依賴注入的過程,比較簡略。node node nodes.item i if node instanceof element claz...

閱讀Spring原始碼

如何閱讀spring原始碼 學習原始碼的思路 為擴充套件 調優 掌握框架的工作流程和原理。提公升自己的程式設計能力 學習他人的設計模式和思路。掌握設計方法和分析思路。學習原始碼的方法 思路掌握問題域理論和核心概念 搞明白做什麼,如何做 從整體到部分 找到入口,先理清主幹流程,後細節 多思考,多分析 ...

Spring原始碼閱讀 一

3 finishbeanfactoryinitialization beanfactory 1 spring容器的初始化時,通過this 呼叫了無參建構函式,主要做了以下三個事情 1 例項化beanfactory defaultlistablebeanfactory 工廠,用於生成bean物件 2 ...