日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

eclipse aop连接点joinpoint方法点不出来_(面试必备)你必须要懂的Spring-Aop

發布時間:2025/3/15 javascript 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 eclipse aop连接点joinpoint方法点不出来_(面试必备)你必须要懂的Spring-Aop 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在實際研發中,Spring是我們經常會使用的框架,畢竟它們太火了,也因此Spring相關的知識點也是面試必問點,今天我們就大話Aop。 特地在周末推文,因為該篇文章閱讀起來還是比較輕松詼諧的,當然了,更主要的是周末的我也在充電學習,希望有追求的朋友們也盡量不要放過周末時間,適當充電,為了走上人生巔峰,迎娶白富美。

為什么要有aop

我們都知道Java是一種面向對象編程【也就是OOP】的語言,不得不說面向對象編程是一種及其優秀的設計,但是任何語言都無法十全十美,對于OOP語言來說,當需要為部分對象引入公共部分的時候,OOP就會引入大量的重復代碼【這些代碼我們可以稱之為橫切代碼】。而這也是Aop出現的原因,沒錯, Aop就是被設計出來彌補OOP短板的 。Aop便是將這些橫切代碼封裝到一個可重用模塊中,繼而降低模塊間的耦合度,這樣也有利于后面維護。

Aop是什么東西

學過Spring的都知道,Spring內比較核心的功能便是Ioc和Aop,Ioc的主要作用是應用對象之間的解耦,而Aop則可以實現橫切代碼【如權限、日志等】與他們綁定的對象之間的解耦,舉個淺顯易懂的小栗子,在用戶調用很多接口的地方,我們都需要做權限認證,判斷用戶是否有調用該接口的權限,如果每個接口都要自己去做類似的處理,未免有點sb了,也不夠裝x,因此Aop就可以派上用場了,將這些處理的代碼放到切片中,定義一下切片、連接點和通知,刷刷刷跑起來就ojbk了。

想要了解Aop,就要先理解以下幾個術語,如PointCut、Advice、JoinPoint。接下來盡量用白話文描述下。

PointCut【切點】其實切點的概念很好理解,你想要去切某個東西之前總得先知道要在哪里切入是吧,切點格式如下:execution(* com.nuofankj.springdemo.aop. Service. (..)) 可以看出來,格式使用了正常表達式來定義那個范圍內的類、那些接口會被當成切點,簡單明了。

AdviceAdvice行內很多人都定義成了通知,但是我總覺得有點勉強。所謂的Advice其實就是定義了Aop何時被調用,確實有種通知的感覺,何時調用其實也不過以下幾種:

  • Before 在方法被調用之前調用
  • After 在方法完成之后調用
  • After-returning 在方法成功執行之后調用
  • After-throwing 在方法拋出異常之后調用
  • Around 在被通知的方法調用之前和調用之后調用

JoinPoint【連接點】JoinPoint連接點,其實很好理解,上面又有通知、又有切點,那和具體業務的連接點又是什么呢?沒錯,其實就是對應業務的方法對象,因為我們在橫切代碼中是有可能需要用到具體方法中的具體數據的,而連接點便可以做到這一點。

給出一個Aop在實際中的應用場景

先給出兩個業務內的接口,一個是聊天,一個是購買東西

接下來該給出說了那么久的切片了

可以從中看到PointCut【切點】是

execution(* com.nuofankj.springdemo.aop. Service. (..))

Advice是

Before

JoinPoint【連接點】是

MethodSignature signature = (MethodSignature) joinPoint.getSignature(); Method method = signature.getMethod();

代碼淺顯易懂,其實就是將ChatService和BuyService里邊給userId做權限校驗的邏輯抽出來做成切片。

那么如何拿到具體業務方法內的具體參數呢? 這里是定義了一個新的注解

作用可以直接看注釋,使用地方如下

可以看到對應接口使用了AuthPermission的注解,而取出的地方在于

是的,這樣便可以取出來對應的接口傳遞的userId具體是什么了,而校驗邏輯可以自己處理。

送佛送到西,不對,擼碼擼整套,接下來給出運行的主類

可以看到,上面有一個接口傳遞的userId是1,另一個是123,而上面權限認證只有1才說通過,否則會拋出異常。

運行結果如下

運行結果可想而知,1的通過驗證,123的失敗。

總結

以上是生活随笔為你收集整理的eclipse aop连接点joinpoint方法点不出来_(面试必备)你必须要懂的Spring-Aop的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。