springaop大致執行過程
abstractautowirecapablebeanfactory
createbean()//->abstractautowirecapablebeanfactory#docreatebean()abstractautoproxycreatordocreatebean()//->abstractautowirecapablebeanfactory#initializebean()
postprocessafterinitialization()//->abstractautoproxycreator#wrapifnecessary()abstractautoproxycreatorwrapifnecessary()//->abstractautoproxycreator#getadvicesandadvisorsforbean()
注:由子類abstractadvisorautoproxycreator實現//->abstractautoproxycreator#createproxy()
createproxy()//->proxyfactory#getproxy()
getadvicesandadvisorsforbean()//->abstractautoproxycreator#findeligibleadvisors()abstractautoproxycreatorfindeligibleadvisors()//->abstractautoproxycreator#sortadvisors()
sortadvisors()//->annotationawareordercomparator#sort()
createproxy()//->proxycreatorsupport#getproxy()proxyfactory
getproxy()//->proxycreatorsupport#createaopproxy()defaultaopproxyfactory
createaopproxy()//->返回乙個aopproxy物件給abstractautoproxycreator#createproxy()jdkdynamicaopproxy
invoke()//->advisedsupport#getinterceptorsanddynamicinterceptionadvice()springdi大致呼叫過程
abstractbeanfactory
getbean() //->abstractbeanfactory#getbean() //從bean工廠獲取乙個例項beanabstractautowirecapablebeanfactorydogetbean()//->abstractbeanfactory#dogetbean(),//返回乙個指定bean的例項,如果沒有,則呼叫createbean
createbean()//->abstractautowirecapablebeanfactory#createbean() //建立乙個bean例項,用於dogetbean方法beandefinitionvalueresolvercreatebeaninstance()//->abstractautowirecapablebeanfactory#createbeaninstance() //使用適當的建立策略為指定的bean建立例項
instantiatebean()//->abstractautowirecapablebeanfactory#instantiatebean() //初始化給定的bean例項
populatebean()//->abstractautowirecapablebeanfactory#populatebean() //對bean屬性依賴注入進行處理
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採用的是動態 在執行期間對業務方法進行增強,所以...