Spring AOP和IOC呼叫過程

2021-09-16 14:03:32 字數 2514 閱讀 5468

springaop大致執行過程

abstractautowirecapablebeanfactory

createbean()//->abstractautowirecapablebeanfactory#docreatebean()

docreatebean()//->abstractautowirecapablebeanfactory#initializebean()

abstractautoproxycreator

postprocessafterinitialization()//->abstractautoproxycreator#wrapifnecessary()

wrapifnecessary()//->abstractautoproxycreator#getadvicesandadvisorsforbean()

注:由子類abstractadvisorautoproxycreator實現//->abstractautoproxycreator#createproxy()

createproxy()//->proxyfactory#getproxy()

abstractautoproxycreator

getadvicesandadvisorsforbean()//->abstractautoproxycreator#findeligibleadvisors()

findeligibleadvisors()//->abstractautoproxycreator#sortadvisors()

sortadvisors()//->annotationawareordercomparator#sort()

abstractautoproxycreator

createproxy()//->proxycreatorsupport#getproxy()

proxyfactory

getproxy()//->proxycreatorsupport#createaopproxy()

defaultaopproxyfactory

createaopproxy()//->返回乙個aopproxy物件給abstractautoproxycreator#createproxy()

jdkdynamicaopproxy

invoke()//->advisedsupport#getinterceptorsanddynamicinterceptionadvice()

springdi大致呼叫過程

abstractbeanfactory

getbean() //->abstractbeanfactory#getbean() //從bean工廠獲取乙個例項bean

dogetbean()//->abstractbeanfactory#dogetbean(),//返回乙個指定bean的例項,如果沒有,則呼叫createbean

abstractautowirecapablebeanfactory

createbean()//->abstractautowirecapablebeanfactory#createbean() //建立乙個bean例項,用於dogetbean方法

createbeaninstance()//->abstractautowirecapablebeanfactory#createbeaninstance() //使用適當的建立策略為指定的bean建立例項

instantiatebean()//->abstractautowirecapablebeanfactory#instantiatebean() //初始化給定的bean例項

populatebean()//->abstractautowirecapablebeanfactory#populatebean() //對bean屬性依賴注入進行處理

beandefinitionvalueresolver

resolvevalueifnecessary()//->beandefinitionvalueresolver#resolvevalueifnecessary() //轉換屬性值

abstractpropertyaccessor

setpropertyvalues()//->abstractpropertyaccessor#setpropertyvalues() //進行我們的屬性依賴注入

abstractnestablepropertyaccessor

processkeyedproperty() or processlocalproperty() //設定本地屬性或者key屬性

spring aop和ioc運用場景

1 ioc運用場景 configuration的註解類標識這個類可以使用spring ioc容器作為bean定義的 bean註解告訴spring,乙個帶有 bean的註解方法將返回乙個物件,該物件應該被註冊為在spring應用程式上下文中的bean。configuration public clas...

spring aop 之鏈式呼叫

關關雎鳩,在河之洲。窈窕淑女,君子好逑。aop aspect orient programming 我們一般稱為面向方面 切面 程式設計,作為物件導向的一種補充,用於處理系統中分布於各個模組的橫切關注點,比如事務管理 日誌 快取等等。springaop採用的是動態 在執行期間對業務方法進行增強,所以...

spring aop 之鏈式呼叫

關關雎鳩,在河之洲。窈窕淑女,君子好逑。aop aspect orient programming 我們一般稱為面向方面 切面 程式設計,作為物件導向的一種補充,用於處理系統中分布於各個模組的橫切關注點,比如事務管理 日誌 快取等等。springaop採用的是動態 在執行期間對業務方法進行增強,所以...