1. 程式人生 > 程式設計 >通過例項解析spring環繞通知原理及用法

通過例項解析spring環繞通知原理及用法

環繞通知:

它是spring框架為我們提供的一種可以在程式碼中手動控制增強部分什麼時候執行的方式。

問題:

當我們配置了環繞通知之後,增強的程式碼執行了,業務核心方法沒有執行。

分析:

通過動態代理我們知道在invoke方法中,有明確呼叫業務核心方法:method.invoke()。

我們配置的環繞通知中,沒有明確呼叫業務核心方法。

解決:

spring框架為我們提供了一個介面:ProceedingJoinPoint,它可以作為環繞通知的方法引數在環繞通知執行時,spring框架會為我們提供該介面的實現類物件,我們直接使用就行。該介面中有一個方法proceed(),此方法就相當於method.invoke()

程式碼:

  /**
   * 環繞通知
   */
  public void aroundInform(ProceedingJoinPoint pjp){
    System.out.println("前置通知");
    try {
      pjp.proceed();
      System.out.println("後置通知");
    } catch (Throwable throwable) {
      System.out.println("異常通知");
    }finally {
      System.out.println("最終通知");
    }
  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。