峰哥說技術 17 Spring Boot整合AOP

2022-08-30 13:42:21 字數 2139 閱讀 7868

峰哥說技術—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月獲得博士學位。目前在上海一所當地大學 上海金融學院 國際經貿學院 ...