峰哥說技術—2020庚子年重磅推出、戰勝病毒、我們在行動
aop是aspect oriented programming 的縮寫,意為面向切面程式設計。面向切面程式設計的目標就是分離關注點。什麼是關注點呢?就是關注點,就是你要做的事情。它可以靈活組合,達到一種可配置的、可插拔的程式結構。它的一些常用的概念需要了解一下。
1)joinpoint (連線點):類裡面可以被增強的方法即為連線點。例如,想修改哪個方法的功能,
那麼該方法就是乙個連線點。
2)pointcut(切入點):對 joinpoint 進行攔截的定義即為切入點,例如,攔截所有以 insert 開始的方法,這個定義即為切入點。
3)advice (通知或者增強):攔截到 joinpoint 之後所要做的事情就是通知。例如列印日誌監控,
通知分為
後置通知、後
置通知、異常通知、最終通知和環繞通知。
4)aspect (切面): pointcut 和advice 的結合。
5)target (目標物件):要增強的類稱為 target
6)**物件: 其實是由 aop 框架動態生成的乙個物件,該物件可作為目標物件使用。
在spring boot中對於aop的支援使用非常簡單。我們只需要新增spring-boot-starter-aop依賴。後面的使用和spring框架中的使用沒有什麼區別。
案例:對於userservice類中的方法進行日誌的各種增強處理。
步驟:1)建立spring boot工程chapter04-aop.並新增web和aop依賴。我們在web環境下進行測試。
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-aop
2)編寫userservice類。
@service
public class userservice
public string deleteuserbyid(integer id)
}3)建立增強的切面類logaspect.
@component
@aspect
public class logaspect
//前置通知
@before(value = "pc()")
public void before(joinpoint jp)
//後置通知
@after(value = "pc()")
public void after(joinpoint jp)
//最終通知
@afterreturning(value = "pc()",returning = "result")
public void afterreturning(joinpoint jp,object result)
//異常通知
@afterthrowing(value = "pc()",throwing = "e")
public void afterthrowing(joinpoint jp,exception e)
//環繞通知
@around(value = "pc()")
public object around(proceedingjoinpoint pjp) throws throwable
}4)編寫usercontroller
5)在瀏覽器中進行測試,輸入http://localhost:8080/getuserbyid
對於這些前置、後置、環繞、異常、最終的增強在這裡不做過多的介紹,不清楚的同學可以查一下spring的相關知識。
專案 流量削峰技術
秒殺令牌的原理和使用方法 秒殺大閘的原理和使用方法 佇列洩洪的原理和使用方式 存在缺點 秒殺下單介面會被指令碼不停的刷 秒殺驗證邏輯和秒殺下單介面強關聯,冗餘度高 秒殺驗證邏輯複雜,對交易系統產生無關聯負載 秒殺介面需要依靠令牌才能進入 秒殺的令牌由秒殺活動模組負責生成 秒殺活動模組對秒殺令牌生成全...
在千峰「逆戰」學習的第17天
今天學習了自定義檔案上傳,jquery的入門案例以及基本 層次和過濾選擇器。繼續加油!奧利給!人生重要的不是所站的位置,而是所朝的方向 中國加油!武漢加油!千鋒加油!我自己加油 jquery是什麼?jquery是乙個js的類庫檔案 01 jquery入門 jquery是什麼?jquery是乙個js的...
值得學習的技術人 阮一峰
說起阮一峰,很多it人都很熟悉,不少人都從他那深入淺出的部落格中受益匪淺,但有多少人對他做過深入的了解呢?阮一峰,70後,英文名frank。他原是上海財經大學世界經濟博士研究生。主要研究巨集觀金融 貨幣政策與美國經濟。於2008年6月獲得博士學位。目前在上海一所當地大學 上海金融學院 國際經貿學院 ...