springboot aop做日志操作記錄

講之前,先了解下aop中的幾個(gè)知識(shí)點(diǎn),

aop稱為面向切面編程,在程序開發(fā)主要用來解決一些系統(tǒng)層面上的問題,比如,日志、權(quán)限、事務(wù)等。

1.Aspect:切面,通常是一個(gè)類,里面可以定義切入點(diǎn)和通知

(2)JointPoint(連接點(diǎn)):程序執(zhí)行過程中明確的點(diǎn),一般是方法的調(diào)用

(3)Advice(通知):AOP在特定的切入點(diǎn)上執(zhí)行的增強(qiáng)處理,有before,after,afterReturning,afterThrowing,around

(4)Pointcut(切入點(diǎn)):就是帶有通知的連接點(diǎn),在程序中主要體現(xiàn)為書寫切入點(diǎn)表達(dá)式

(5)AOP代理:AOP框架創(chuàng)建的對(duì)象,代理就是目標(biāo)對(duì)象的加強(qiáng)。Spring中的AOP代理可以使JDK動(dòng)態(tài)代理,也可以是CGLIB代理,前者基于接口,后者基于子類

2.通知類型介紹

(1)Before:在目標(biāo)方法被調(diào)用之前做增強(qiáng)處理,@Before只需要指定切入點(diǎn)表達(dá)式即可

(2)AfterReturning:在目標(biāo)方法正常完成后做增強(qiáng),@AfterReturning除了指定切入點(diǎn)表達(dá)式后,還可以指定一個(gè)返回值形參名returning,代表目標(biāo)方法的返回值

(3)AfterThrowing:主要用來處理程序中未處理的異常,@AfterThrowing除了指定切入點(diǎn)表達(dá)式后,還可以指定一個(gè)throwing的返回值形參名,可以通過該形參名

來訪問目標(biāo)方法中所拋出的異常對(duì)象

(4)After:在目標(biāo)方法完成之后做增強(qiáng),無論目標(biāo)方法時(shí)候成功完成。@After可以指定一個(gè)切入點(diǎn)表達(dá)式

(5)Around:環(huán)繞通知,在目標(biāo)方法完成前后做增強(qiáng)處理,環(huán)繞通知是最重要的通知類型,像事務(wù),日志等都是環(huán)繞通知,注意編程中核心是一個(gè)ProceedingJoinPoint


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring的AOPAOP的基本概念基于注解的“零配置”方式定義切面Bean定義Before增強(qiáng)處理定義After...
    漸丶忘閱讀 1,654評(píng)論 0 0
  • AOP實(shí)現(xiàn)可分為兩類(按AOP框架修改源代碼的時(shí)機(jī)): 靜態(tài)AOP實(shí)現(xiàn):AOP框架在編譯階段對(duì)程序進(jìn)行修改,即實(shí)現(xiàn)...
    數(shù)獨(dú)題閱讀 2,399評(píng)論 0 22
  • SpringBoot AOP 記錄日志實(shí)例 散布于應(yīng)用中多處的功能(日志、安全、事務(wù)管理等)被稱為橫切關(guān)注點(diǎn)。把橫...
    光劍書架上的書閱讀 7,561評(píng)論 2 35
  • 定義AfterReturning增強(qiáng)處理: AfterReturning增強(qiáng)處理在目標(biāo)方法正常完成之后織入。 類似...
    FTOLsXD閱讀 1,167評(píng)論 0 2
  • 每個(gè)人都有自己的脾氣,但并不是每個(gè)人都對(duì)自己的脾氣滿意,最難過的時(shí)候莫過于懟了別人又后悔不已。我自己就是這樣的人,...
    芳芳讀書閱讀 93評(píng)論 0 0

友情鏈接更多精彩內(nèi)容