Hasor 攔截器鏈

2018-10-06 10:30 更新

經(jīng)過前面的介紹常規(guī)的 Hasor Aop 使用已經(jīng)介紹清楚,下面對于 @Aop 注解來這里在介紹一個特殊的功能,復合攔截器。


復合攔截器,有兩層含義

  • 一、可以寫多個攔截器,同時攔截同一個切點。
  • 二、可以有多個攔截器同時生效在不同的位置。


我們先說第一點,多個攔截器同時攔截一個切點。它們的生效順序是先 A 后 B。代碼如下:

@Aop({ SimpleInterceptorA.class, SimpleInterceptorB.class })
public class AopBean {
    ...
}


第二點,多個攔截器生效在不同位置,類似這樣:

@Aop(ClassInterceptor.class)
public class AopBean {
    public String print() {
        ...
    }
    @Aop(MethodInterceptor.class)
    public String echo(String sayMessage) {
        return "echo :" + sayMessage;
    }
}


在這個 case 中 print 方法調(diào)用時 ClassInterceptor 攔截器生效,當調(diào)用 echo 方法時 ClassInterceptorMethodInterceptor 會同時生效,生效順序為,先 Class 后 Method。


如果同時還有一個全局 Aop 也在配置中,那么攔截器的生效順序是:

  • 全局級 -> 類級 -> 方法級


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號