SpringBoot定義攔截器

image

??關注微信公眾號,獲取更多編程內容


更多關于Java方面的文章,歡迎訪問燕歸來https://www.zhoutao123.com

Spring中定義攔截的方式和SpringMVC非常相似顷啼,只是將原本在xml中配置的文件放在Configuration注解中撤师,從來實現(xiàn)注入攔截器的方式贸典,下面我們開始代碼刽漂,代碼非常簡單,基本流程就是定義是攔截器適配器庙楚,然后在適配器中添加自定義的攔截器示例面哥,并配置攔截參數(shù)即可哎壳。

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 本文件由周濤創(chuàng)建,位于com.tao.mybatis_plus.config包下
 * 創(chuàng)建時間2018/3/24 23:02
 * 郵箱:zhoutao@xiaodouwangluo.com
 * 作用:暫未填寫
 *
 * @author tao
 */
 
 
 //定義攔截器適配器,使用Configuration注解修飾
@Configuration
public class MyHandleInterception  extends WebMvcConfigurerAdapter{

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //增加攔截器尚卫,并配置攔截的url
        registry.addInterceptor(new MyInterception()).addPathPatterns("/book/**");
        super.addInterceptors(registry);
    }
}

定義攔截器

此處和SPringMVC一模一樣,要求繼承HandlerInterceptor接口归榕。其中的三個方法用處如下:

  • preHandle:預處理回調方法,實現(xiàn)處理器的預處理(如登錄檢查)吱涉,第三個參數(shù)為響應的處理器(如我們上一章的Controller實現(xiàn))返回值:true表示繼續(xù)流程(如調用下一個攔截器或處理器)刹泄; false表示流程中斷(如登錄檢查失敗)怎爵,不會繼續(xù)調用其他的攔截器或處理器特石,此時我們需要通過response來產生響應;

  • postHandle:后處理回調方法鳖链,實現(xiàn)處理器的后處理(但在渲染視圖之前)姆蘸,此時我們可以通過modelAndView(模型和視圖對象)對模型數(shù)據(jù)進行處理或對視圖進行處理,modelAndView也可能為null芙委。

  • afterCompletion:整個請求處理完畢回調方法逞敷,即在視圖渲染完畢時回調,如性能監(jiān)控中我們可以在此記錄結束時間并輸出消耗時間题山,還可以進行一些資源清理兰粉,類似于try-catch-finally中的finally故痊,但僅調用處理器執(zhí)行鏈中preHandle返回true的攔截器的afterCompletion顶瞳。

public class MyInterception implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("調用了preHandle");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("調用了postHandle");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("調用了afterCompletion");
    }
}

調用接口:http://localhost:8080/book/list/1/1 的時候可以觀察到一下輸出,中間的橘色字體表示執(zhí)行的sql語句愕秫,和攔截沒有關系慨菱,另一方便也說明了postHandle和afterCompletion方法是在方法執(zhí)行完成之后調用的。

image

更多關于Java方面的文章,歡迎訪問燕歸來https://www.zhoutao123.com

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末戴甩,一起剝皮案震驚了整個濱河市符喝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌甜孤,老刑警劉巖协饲,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件畏腕,死亡現(xiàn)場離奇詭異,居然都是意外死亡茉稠,警方通過查閱死者的電腦和手機描馅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來而线,“玉大人铭污,你說我怎么就攤上這事“蚶海” “怎么了嘹狞?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長誓竿。 經常有香客問我磅网,道長,這世上最難降的妖魔是什么烤黍? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任知市,我火速辦了婚禮,結果婚禮上速蕊,老公的妹妹穿的比我還像新娘嫂丙。我一直安慰自己,他們只是感情好规哲,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布跟啤。 她就那樣靜靜地躺著,像睡著了一般唉锌。 火紅的嫁衣襯著肌膚如雪隅肥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天袄简,我揣著相機與錄音腥放,去河邊找鬼。 笑死绿语,一個胖子當著我的面吹牛秃症,可吹牛的內容都是我干的。 我是一名探鬼主播吕粹,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼种柑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了匹耕?” 一聲冷哼從身側響起聚请,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎稳其,沒想到半個月后驶赏,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體炸卑,經...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年煤傍,在試婚紗的時候發(fā)現(xiàn)自己被綠了矾兜。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡患久,死狀恐怖椅寺,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情蒋失,我是刑警寧澤返帕,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站篙挽,受9級特大地震影響荆萤,放射性物質發(fā)生泄漏。R本人自食惡果不足惜铣卡,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一链韭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧煮落,春花似錦敞峭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至轿衔,卻和暖如春沉迹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背害驹。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工鞭呕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人宛官。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓葫松,卻偏偏與公主長得像,于是被迫代替她去往敵國和親摘刑。 傳聞我的和親對象是個殘疾皇子进宝,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355