程式設計師負責什麼?
尋找可重複**,拉出來製作成通知;
在配置檔案中,宣告切入點和通知間的關係。
術語生澀難懂,「翻譯」過來就是在繁冗的業務**中可能會存在大量的重複型業務**,我們可以將這些**抽取出來,製作成乙個類,並通過cglib動態**或proxy**方式實現功能的增強。
執行階段spring負責什麼?
時刻監控切入點方法的執行。一旦檢測到切入點方法被執行,使用**技術,動態建立目標的**物件,根據通知型別,在對應位置加入增強**,完善功能,最終形成乙個完整的**業務邏輯。
幾個術語名詞解釋:
連線點:業務邏輯介面中的介面們就是連線點,他們作為事務的核心被spring攔截,再被識別判斷是否要被增強。
切入點:被攔截並被增強的業務就是切入點,說白了就是事務介面中被增強了的介面方法。
通知:被整合出來的加強方法實現類就是通知,根據執行時間不同,分為前置通知,後置通知、異常通知、環繞通知和最終通知。
這裡有乙個簡單的通知型別判斷方法,在進行**功能加強時,會呼叫method.invoke(object, args)方法,在這之前的是前置通知,這之後catch塊前的是後置通知,catch塊中的是異常通知,finally塊中的為最終通知。
/**
* 嘴業務層的四個業務
* @author administrator
* */
public inte***ce imouth
/**
* 不管是吃喝嚼還是rap都需要先張開嘴,這是必須的,所以張嘴就可以作為乙個通知整合進通知類
* @author administrator
* */
public class mouthimpl implements imouth
@override
public void drink()
@override
public void chew()
@override
public void eat()
@override
public void rap()
}
/*
* 對嘴業務的增強**,這就是乙個增強類,也叫通知類
*/public class mouthmanager
public static void closemouth()
public static void cantclosemouth()
public static void finallyclose()
}
/**
* 通過cglib**完善業務邏輯
* @author administrator
* */
public class mouthproxy catch (exception e) finally
}});
return mouthproxy;
}}
public class demo
}
Spring學習筆記 AOP
1 匯入aop模組 spring aop spring aspects 2 定義乙個業務邏輯 3 定義乙個日誌切面類 通知方法 前置通知 before 在目標方法執行之前執行 後置通知 after 在目標方法執行結束後執行 返回通知 afterrerurning 在目標方法正常返回之後執行 異常通知...
Spring學習筆記3 AOP
這一章是上周四晚上看的,一直沒空寫,所以今天補寫一下。spring aop,即面向切面設計。我覺得可以這樣理解這個概念,把幾個類並排放著,然後用一把 刀 橫向地切過。這幾個類共同有或者相似的幾個方法,就是切出來的。在oo的思想裡,如果類b中,有類a的一些方法,則可以讓b繼承a。但是繼承,就限制b一定...
Spring學習筆記三 註解AOP
1.匯入jar包 service public class studentservice component aspect public class studentadvice afterreturning value execution cn.wang.service.如果目標方法有返回值,後置增...