日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

SpringBoot2.0 基础案例(05):多个拦截器配置和使用场景

發布時間:2023/11/27 生活经验 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot2.0 基础案例(05):多个拦截器配置和使用场景 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、攔截器簡介

1、攔截器定義

攔截器,請求的接口被訪問之前,進行攔截然后在之前或之后加入某些操作。攔截是AOP的一種實現策略。 攔截器主要用來按照指定規則拒絕請求。

2、攔截器中應用

Token令牌驗證
請求數據校驗
用戶權限校驗
放行指定接口

二、SpringBoot2.0攔截器用法

1、編寫兩個攔截器

自定義類實現HandlerInterceptor接口
1)OneInterceptor 攔截器

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/*** 攔截器一*/
public class OneInterceptor implements HandlerInterceptor {private static final Logger LOGGER= LoggerFactory.getLogger(OneInterceptor.class.getName());@Overridepublic boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object o) throws Exception {String url =String.valueOf(request.getRequestURL()) ;LOGGER.info("1、url=="+url);// 放開攔截return true;}@Overridepublic void postHandle(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse,Object o, ModelAndView modelAndView) throws Exception {LOGGER.info("1、postHandle");}@Overridepublic void afterCompletion(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse,Object o, Exception e) throws Exception {LOGGER.info("1、afterCompletion");}
}

2)TwoInterceptor 攔截器

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/*** 攔截器二*/
public class TwoInterceptor implements HandlerInterceptor {private static final Logger LOGGER= LoggerFactory.getLogger(TwoInterceptor.class.getName());@Overridepublic boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object o) throws Exception {String url =String.valueOf(request.getRequestURL()) ;LOGGER.info("2、url=="+url);// 放開攔截return true;}@Overridepublic void postHandle(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse,Object o, ModelAndView modelAndView) throws Exception {LOGGER.info("2、postHandle");}@Overridepublic void afterCompletion(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse,Object o, Exception e) throws Exception {LOGGER.info("2、afterCompletion");}
}

2、Web配置文件中注入攔截器

import com.boot.intercept.intercept.OneInterceptor;
import com.boot.intercept.intercept.TwoInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/*** Web配置文件*/
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {public void addInterceptors(InterceptorRegistry registry) {// 攔截所有路徑// 注冊自定義兩個攔截器registry.addInterceptor(new OneInterceptor()).addPathPatterns("/**");registry.addInterceptor(new TwoInterceptor()).addPathPatterns("/**");}
}

3、編寫測試接口

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class InterceptController {@RequestMapping("/reqUrl")public String reqUrl (){return "success" ;}
}

4、訪問測試接口

日志輸出內容如下

intercept.OneInterceptor : 1、url==http://127.0.0.1:8005/reqUrl
intercept.TwoInterceptor : 2、url==http://127.0.0.1:8005/reqUrl
intercept.TwoInterceptor : 2、postHandle
intercept.OneInterceptor : 1、postHandle
intercept.TwoInterceptor : 2、afterCompletion
intercept.OneInterceptor : 1、afterCompletionla

攔截器的攔截順序,是按照Web配置文件中注入攔截器的順序執行的。

三、源代碼地址

GitHub:知了一笑
https://github.com/cicadasmile/spring-boot-base


轉載于:https://www.cnblogs.com/cicada-smile/p/11006490.html

總結

以上是生活随笔為你收集整理的SpringBoot2.0 基础案例(05):多个拦截器配置和使用场景的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。