Hasor 攔截器鏈

2018-10-06 10:30 更新

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


復(fù)合攔截器,有兩層含義

  • 一、可以寫多個(gè)攔截器,同時(shí)攔截同一個(gè)切點(diǎn)。
  • 二、可以有多個(gè)攔截器同時(shí)生效在不同的位置。


我們先說(shuō)第一點(diǎn),多個(gè)攔截器同時(shí)攔截一個(gè)切點(diǎn)。它們的生效順序是先 A 后 B。代碼如下:

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


第二點(diǎn),多個(gè)攔截器生效在不同位置,類似這樣:

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


在這個(gè) case 中 print 方法調(diào)用時(shí) ClassInterceptor 攔截器生效,當(dāng)調(diào)用 echo 方法時(shí) ClassInterceptorMethodInterceptor 會(huì)同時(shí)生效,生效順序?yàn)?,?Class 后 Method。


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

  • 全局級(jí) -> 類級(jí) -> 方法級(jí)


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)