最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring MVC中自定義攔截器的實(shí)例講解

 更新時(shí)間:2017年08月23日 09:15:10   投稿:jingxian  
下面小編就為大家?guī)硪黄猄pring MVC中自定義攔截器的實(shí)例講解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

1. 引言

攔截器(Interceptor)實(shí)現(xiàn)對(duì)每一個(gè)請(qǐng)求處理前后進(jìn)行相關(guān)的業(yè)務(wù)處理,類似于Servlet的Filter。

我們可以讓普通的Bean實(shí)現(xiàn)HandlerIntercpetor接口或繼承HandlerInterceptorAdapter類來實(shí)現(xiàn)自定義攔截器。

通過重寫WebMvcConfigurerAdapter的addIntercetors方法來注冊(cè)一個(gè)計(jì)算每一次請(qǐng)求的處理時(shí)間的攔截器。

2. 自定義攔截器的實(shí)現(xiàn)

2.1 定義攔截器

新建LogInterceptor類,并繼承HandlerInterceptorAdapter類,重寫preHandle、postHandle這兩個(gè)方法。

1.preHandle方法表示在請(qǐng)求發(fā)生前執(zhí)行,內(nèi)容如下:

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
request.setAttribute("begin", System.currentTimeMillis());
return true;
}

2.postHandle方法表示在請(qǐng)求完成后執(zhí)行,內(nèi)容如下:

@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
 ModelAndView modelAndView) throws Exception {
long begin = (long)request.getAttribute("begin");
request.removeAttribute("begin");
long end = System.currentTimeMillis();
System.out.println("本次請(qǐng)求消耗時(shí)間為:"+new Long(end-begin)+"ms");
}

2.2 配置攔截器

2.2.1 使用xml配置

1.在配置文件中添加支持MVC的schema

xmlns:mvc="http://www.springframework.org/schema/mvc" 
xsi:schemaLocation=" http://www.springframework.org/schema/mvc 
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"

2.使用mvc:interceptors標(biāo)簽聲明攔截器

<mvc:interceptors> 
<!-- 使用bean定義一個(gè)Interceptor,直接定義在mvc:interceptors根下面的Interceptor將攔截所有的請(qǐng)求 --> 
<bean class="org.aming.demo.springmvc.interceptor.LogInterceptor"/> 
<mvc:interceptor> 
 <mvc:mapping path="${指定的URL}"/> 
 <!-- 定義在mvc:interceptor下面的表示是對(duì)特定的請(qǐng)求才進(jìn)行攔截的 --> 
 <bean class="${其他攔截器}"/> 
</mvc:interceptor> 
</mvc:interceptors> 

說明:沒有測試過?。。?/span>

2.2.2 使用JavaConfig配置

3.配置攔截器的Bean

@Bean
public LogInterceptor logInterceptor() {
 return new LogInterceptor();
}

4.重寫addInterceptors方法,注冊(cè)攔截器

@Override
public void addInterceptors(InterceptorRegistry registry) {
 registry.addInterceptor(logInterceptor());
}

說明:配置類需要繼承WebMvcConfigurerAdapter類

3. 運(yùn)行結(jié)果

運(yùn)行結(jié)果

以上這篇Spring MVC中自定義攔截器的實(shí)例講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Cloud Gateway全局異常處理的方法詳解

    Spring Cloud Gateway全局異常處理的方法詳解

    這篇文章主要給大家介紹了關(guān)于Spring Cloud Gateway全局異常處理的相關(guān)資料,需要的朋友可以參考下
    2018-10-10
  • Spring?question問題小結(jié)

    Spring?question問題小結(jié)

    在AppConfig配置類中,通過@Bean注解創(chuàng)建了Service和Controller的實(shí)例,Spring會(huì)自動(dòng)將這些實(shí)例納入容器的管理,并處理它們之間的依賴關(guān)系,本文給大家介紹Spring?question問題小結(jié),感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • spring boot 下對(duì)JSON返回值去除null和空字段操作

    spring boot 下對(duì)JSON返回值去除null和空字段操作

    這篇文章主要介紹了spring boot 下對(duì)JSON返回值去除null和空字段操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Java枚舉使用方法詳解

    Java枚舉使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了Java枚舉的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 詳解springboot通過Async注解實(shí)現(xiàn)異步任務(wù)及回調(diào)的方法

    詳解springboot通過Async注解實(shí)現(xiàn)異步任務(wù)及回調(diào)的方法

    這篇文章主要介紹了springboot通過Async注解實(shí)現(xiàn)異步任務(wù)及回調(diào),文中通過一個(gè)簡單示例來直觀的理解什么是同步調(diào)用,在單元測試用例中,注入?SyncTask?對(duì)象,并在測試用例中執(zhí)行?doTaskOne(),doTaskTwo(),doTaskThree()?三個(gè)方法,具體實(shí)現(xiàn)方式跟隨小編一起看看吧
    2022-05-05
  • 使用SpringBoot與EasyExcel實(shí)現(xiàn)復(fù)雜的導(dǎo)入導(dǎo)出

    使用SpringBoot與EasyExcel實(shí)現(xiàn)復(fù)雜的導(dǎo)入導(dǎo)出

    這篇文章主要介紹了使用SpringBoot與EasyExcel實(shí)現(xiàn)復(fù)雜的導(dǎo)入導(dǎo)出,EasyExcel是一個(gè)快速解決大文件內(nèi)存溢出的Excel處理工具,它能讓你在不用考慮性能、內(nèi)存等因素的情況下,快速完成Excel的讀、寫等功能,需要的朋友可以參考下
    2023-10-10
  • Selenium處理select標(biāo)簽的下拉框

    Selenium處理select標(biāo)簽的下拉框

    Selenium是一個(gè)開源的和便攜式的自動(dòng)化軟件測試工具,用于測試Web應(yīng)用程序有能力在不同的瀏覽器和操作系統(tǒng)運(yùn)行。接下來通過本文給大家介紹Selenium處理select標(biāo)簽的下拉框,需要的朋友一起學(xué)習(xí)吧
    2016-04-04
  • Mybatis新增數(shù)據(jù)并返回主鍵id的兩種方法實(shí)現(xiàn)

    Mybatis新增數(shù)據(jù)并返回主鍵id的兩種方法實(shí)現(xiàn)

    本文主要介紹了Mybatis新增數(shù)據(jù)并返回主鍵id的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • PageHelper插件實(shí)現(xiàn)一對(duì)多查詢時(shí)的分頁問題

    PageHelper插件實(shí)現(xiàn)一對(duì)多查詢時(shí)的分頁問題

    這篇文章主要介紹了PageHelper插件實(shí)現(xiàn)一對(duì)多查詢時(shí)的分頁問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • ReentrantLock源碼詳解--條件鎖

    ReentrantLock源碼詳解--條件鎖

    這篇文章主要介紹了ReentrantLock源碼之條件鎖,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,下面我們來一起學(xué)習(xí)一下吧
    2019-06-06

最新評(píng)論

平陆县| 收藏| 山西省| 韩城市| 兰考县| 胶南市| 搜索| 大港区| 四子王旗| 微山县| 仙桃市| 肇州县| 徐水县| 江北区| 岳阳县| 呼伦贝尔市| 富源县| 海口市| 郎溪县| 垣曲县| 射洪县| 界首市| 藁城市| 连城县| 交口县| 平原县| 噶尔县| 铜陵市| 通道| 双牌县| 静宁县| 贵阳市| 教育| 永康市| 绥江县| 商河县| 新宾| 日照市| 富源县| 精河县| 长汀县|