學習過Struts之類MVC模式的WEB框架,對攔截器都不會很陌生。攔截器的主要作用就是攔截某些方法的調用,可以在被攔截的方法執行前,或者執行后后加上自定義的邏輯。也可以用自定義的邏輯替換被攔截方法的原有邏輯。Mybatis也提供了攔截器的功能。Mybatis攔截器設計的初衷就是為了在需要的時候可以方便的添加自定義邏輯,而不是去修改Mybatis的源代碼。
Mybatis提供了一個Interceptor接口,通過實現該接口就可以定義攔截器。接口的定義如下圖所示:
接口中共有三個方法:intercept、plugin和setProperties。Plugin用于封裝目標對象。通過該方法可以返回目標對象,也可以返回它的代理對象。當返回代理對象時,可對其中的方法進行攔截,調用intercept方法。setProperties方法是可用于在Mybatis配置文件中設定屬性。