亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBoot攔截器的使用

 更新時(shí)間:2021年11月15日 10:51:18   作者:久曲鍵  
這篇文章主要給大家分享的是SpringBoot攔截器的使用,攔截器通常通過(guò)動(dòng)態(tài)代理的方式來(lái)執(zhí)行。攔截器的生命周期由IoC容器管理,可以通過(guò)注入等方式來(lái)獲取其他Bean的實(shí)例,使用更方便,下面文章的詳細(xì)內(nèi)容,需要的朋友可以參考一下

一、攔截器簡(jiǎn)介

攔截器通常通過(guò)動(dòng)態(tài)代理的方式來(lái)執(zhí)行。
攔截器的生命周期由IoC容器管理,可以通過(guò)注入等方式來(lái)獲取其他Bean的實(shí)例,使用更方便。

二、攔截器配置使用方式

1、過(guò)濾器攔截器作用范圍

2、攔截器的使用

示例代碼如下:

 package com.rongrong.wiki.interceptor;

 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 import org.springframework.web.servlet.HandlerInterceptor;
 import org.springframework.web.servlet.ModelAndView;

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

 /**
  * 攔截器:Spring框架特有的,常用于登錄校驗(yàn),權(quán)限校驗(yàn),請(qǐng)求日志打印 /login
  */
 @Component
 public class LogInterceptor implements HandlerInterceptor {

     private static final Logger LOG = LoggerFactory.getLogger(LogInterceptor.class);

     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         // 打印請(qǐng)求信息
         LOG.info("------------- LogInterceptor 開(kāi)始 -------------");
         LOG.info("請(qǐng)求地址: {} {}", request.getRequestURL().toString(), request.getMethod());
         LOG.info("遠(yuǎn)程地址: {}", request.getRemoteAddr());

         long startTime = System.currentTimeMillis();
         request.setAttribute("requestStartTime", startTime);
         return true;
     }

     @Override
     public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
         long startTime = (Long) request.getAttribute("requestStartTime");
         LOG.info("------------- LogInterceptor 結(jié)束 耗時(shí):{} ms -------------", System.currentTimeMillis() - startTime);
     }
 }

將攔截器加入到配置中,示例代碼如下:

package com.rongrong.wiki.config;

import com.rongrong.wiki.interceptor.LogInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import javax.annotation.Resource;

@Configuration
public class SpringMvcConfig implements WebMvcConfigurer {

    @Resource
    LogInterceptor loginInterceptor;

    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(loginInterceptor)
                .addPathPatterns("/**")
                .excludePathPatterns("/login");
    }
}

重新編譯啟動(dòng),查看結(jié)果如下:

三、知識(shí)點(diǎn)總結(jié)

1、攔截器的使用

  • 返回true會(huì)往后執(zhí)行
  • 返回false會(huì)結(jié)束,可以利用這點(diǎn)來(lái)做權(quán)限攔截
  • addPathPatterns() ,要攔截請(qǐng)求
  • excludePathPatterns() ,排除請(qǐng)求,不攔截

2、攔截器和過(guò)濾器的相同與不同

  • 都可以用來(lái)統(tǒng)一處理請(qǐng)求,比如:打印日志、權(quán)限控制
  • 過(guò)濾器依賴于servlet容器,攔截器依賴Spring框架
  • 過(guò)濾器不用注入其它類,攔截器可注入其它類,基于這一點(diǎn),建議能用攔截器的都用攔截器

到此這篇關(guān)于SpringBoot攔截器的使用的文章就介紹到這了,更多相關(guān)SpringBoot攔截器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java中的Io(input與output)操作總結(jié)(一)

    java中的Io(input與output)操作總結(jié)(一)

    所謂IO,也就是Input與Output的縮寫。在java中,IO涉及的范圍比較大,這里主要討論針對(duì)文件內(nèi)容的讀寫,感興趣的朋友可以了解下
    2013-01-01
  • java8到j(luò)ava15的新功能簡(jiǎn)介

    java8到j(luò)ava15的新功能簡(jiǎn)介

    這篇文章主要介紹了java8到j(luò)ava15的新功能的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-12-12
  • java如何實(shí)現(xiàn)socket連接方法封裝

    java如何實(shí)現(xiàn)socket連接方法封裝

    這篇文章主要介紹了java實(shí)現(xiàn)socket連接方法封裝教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 詳解Java中Period類的使用方法

    詳解Java中Period類的使用方法

    Period類通過(guò)年、月、日相結(jié)合來(lái)描述一個(gè)時(shí)間量,最高精度是天。本文將通過(guò)示例詳細(xì)為大家講講Period類的使用,需要的可以參考一下
    2022-05-05
  • 手把手帶你用java搞定青蛙跳臺(tái)階

    手把手帶你用java搞定青蛙跳臺(tái)階

    這篇文章主要給大家介紹了關(guān)于Java青蛙跳臺(tái)階問(wèn)題的解決思路與代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • SpringBoot 如何實(shí)現(xiàn)異步編程

    SpringBoot 如何實(shí)現(xiàn)異步編程

    在SpringBoot的日常開(kāi)發(fā)中,一般都是同步調(diào)用的,但實(shí)際中有很多場(chǎng)景非常適合使用異步來(lái)處理,本文就詳細(xì)的介紹一下SpringBoot 如何實(shí)現(xiàn)異步編程 ,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-12-12
  • SpringBoot中多環(huán)境啟動(dòng)配置的教程詳解

    SpringBoot中多環(huán)境啟動(dòng)配置的教程詳解

    在SpringBoot項(xiàng)目的生命周期中,存在不同的環(huán)境,我們就需要針對(duì)不同環(huán)境制定不同名稱的配置文件,里面放置不同環(huán)境下所需的配置項(xiàng),下面小編就來(lái)和大家詳細(xì)講講SpringBoot如何進(jìn)行多環(huán)境啟動(dòng)配置的吧
    2024-02-02
  • Java中實(shí)現(xiàn)文件預(yù)覽的功能(實(shí)例代碼)

    Java中實(shí)現(xiàn)文件預(yù)覽的功能(實(shí)例代碼)

    大家都知道word,Excel,PPT實(shí)現(xiàn)在線預(yù)覽常用的方式就是先轉(zhuǎn)換成pdf,然后在進(jìn)行預(yù)覽,下面給大家介紹Java中如何實(shí)現(xiàn)文件預(yù)覽的功能,需要的朋友可以參考下
    2023-05-05
  • 淺談java對(duì)象結(jié)構(gòu) 對(duì)象頭 Markword

    淺談java對(duì)象結(jié)構(gòu) 對(duì)象頭 Markword

    這篇文章主要介紹了淺談java對(duì)象結(jié)構(gòu) 對(duì)象頭 Markword,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • @Scheduled fixedDelayString 加載properties配置方式

    @Scheduled fixedDelayString 加載properties配置方式

    這篇文章主要介紹了@Scheduled fixedDelayString 加載properties配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10

最新評(píng)論