基於註解的aop原理流程(接口方式進行aop織入)

spring初始化開始的位置
AnnotationConfigApplicationContext ac =
      new AnnotationConfigApplicationContext(Appconfig.class);   -------> 
------->接下來調用 AbstractApplicationContext的refresh()方法中的下邊這個方法

-------->接下來調用AbstractApplicationContext的finishBeanFactoryInitialization()方法中的這個方法
----->接下來調用DefaultListableBeanFactorypreInstantiateSingletons()方法中的這個方法

------->接下來調用getBean()方法中的doGetBean();
------->然後調用createBean()方法,是在第二次調用getSingleton();

----->調用doCreateBean創建原對象

------>然後調用initializeBean方法實例化bean
--->然後調用applyBeanPostProcessorsAfterInitialization()方法完成aop代理

---->
在這裏可以返回代理對象,這裏有多個processor,需要知道是當processor爲AnnotationAwareAspectJAutoProxyCreator時
才能實現代理
---->然後進入

----->然後執行getProxy方法

----->調用getProxy

---->


----->這裏就可以看出返回了一個jdk動態代理的對象。

 

---->接下來會接着進行一個bean初始化的後續步驟。。。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章