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

spring boot攔截器的使用場景示例詳解

 更新時間:2020年05月31日 15:30:16   作者:張占嶺  
這篇文章主要給大家介紹了關(guān)于spring boot攔截器的使用場景,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Spring Boot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

在用戶登陸之后,我們一般會把用戶登陸的狀態(tài)和相關(guān)信息進行存儲,把對應的token返回到客戶端進行存儲,下次請求過來時,系統(tǒng)可以通過token拿到當前這個用戶的相關(guān)信息,這是授權(quán)通常的作法,而有時一些業(yè)務里,你存儲的用戶信息不是全局的,可能只是某幾個接口會用戶某些信息,而你把它存儲起來就不是很合理;并且一些隱私信息持久化到redis也不合理,這時就需要統(tǒng)一對這種接口的請求做一起處理了。

攔截器HandlerInterceptor

我們可以去實現(xiàn)這個HandlerInterceptor接口,它會把請求頁面前,請求頁面后等方法,我們可以重寫它們,把自己的邏輯加進來,比如我們可以在請求頁面前,通過當前登陸人ID獲取到當前登陸人能看的信息ID集合,并把這些ID集合以參數(shù)的形式傳到這個頁面里,這個過程是在服務端自動完成的,即對某個頁面(接口)進行攔截,添加自己的邏輯。

/**
 * 當前用戶的數(shù)據(jù)權(quán)限.
 */
@Slf4j
public class DataPermissionInterceptor implements HandlerInterceptor {
 @Override
 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
  logger.info("DataPermissionInterceptor.init");
  //業(yè)務邏輯,可能判斷當前登陸人存儲的數(shù)據(jù)權(quán)限類型,然后統(tǒng)一處理,拿到可以訪問的數(shù)據(jù)編號集合
  String[] ids = {"1", "2", "3"};
  request.setAttribute("approveIds", StringUtils.join(ids, ","));
  return true;
 }
}

注冊這個攔截器

/**
 * 注冊攔截器
 */
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {

 @Override
 public void addInterceptors(InterceptorRegistry registry) {
  // 自定義攔截器,添加攔截路徑和排除攔截路徑
  registry.addInterceptor(new DataPermissionInterceptor()).addPathPatterns("/approve/**");
 }
}

在對應的頁面(接口)里讀取在攔截器里賦值的對象,就可以進行剩下的工作了。

通過這個例子我們了解到,對一些具有統(tǒng)一操作的動作,我們可以把它提取到攔截器里去完成。

總結(jié)

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

相關(guān)文章

  • Java?jar打包成exe應用程序的詳細步驟

    Java?jar打包成exe應用程序的詳細步驟

    本文主要介紹了Java?jar打包成exe應用程序的詳細步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • SpringBoot使用SOFA-Lookout監(jiān)控的方法

    SpringBoot使用SOFA-Lookout監(jiān)控的方法

    本文介紹SpringBoot使用螞蟻金服SOFA-Lookout配合Prometheus進行監(jiān)控,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • Spring中@Autowired和@Resource注解相同點和不同點

    Spring中@Autowired和@Resource注解相同點和不同點

    這篇文章主要介紹了Spring中@Autowired和@Resource注解相同點和不同點,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • 數(shù)組實現(xiàn)Java 自定義Queue隊列及應用操作

    數(shù)組實現(xiàn)Java 自定義Queue隊列及應用操作

    這篇文章主要介紹了數(shù)組實現(xiàn)Java 自定義Queue隊列及應用操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java遠程連接Linux服務器并執(zhí)行命令及上傳文件功能

    Java遠程連接Linux服務器并執(zhí)行命令及上傳文件功能

    這篇文章主要介紹了Java遠程連接Linux服務器并執(zhí)行命令及上傳文件功能,本文是小編整理的代碼筆記,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-05-05
  • 詳解SpringCloud服務認證(JWT)

    詳解SpringCloud服務認證(JWT)

    本篇文章主要介紹了SpringCloud服務認證(JWT),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • SpringBoot多數(shù)據(jù)源配置的全過程記錄

    SpringBoot多數(shù)據(jù)源配置的全過程記錄

    在用SpringBoot開發(fā)項目時,隨著業(yè)務量的擴大,我們通常會進行數(shù)據(jù)庫拆分或是引入其他數(shù)據(jù)庫,從而我們需要配置多個數(shù)據(jù)源,下面這篇文章主要給大家介紹了關(guān)于SpringBoot多數(shù)據(jù)源配置的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • 詳解SpringMVC中攔截器的概念及入門案例

    詳解SpringMVC中攔截器的概念及入門案例

    攔截器(Interceptor)是一種動態(tài)攔截方法調(diào)用的機制,在SpringMVC中動態(tài)攔截控制器方法的執(zhí)行。本文將詳細講講SpringMVC中攔截器的概念及入門案例,感興趣的可以嘗試一下
    2022-07-07
  • JAVA序列化和反序列化的底層實現(xiàn)原理解析

    JAVA序列化和反序列化的底層實現(xiàn)原理解析

    這篇文章主要介紹了JAVA序列化和反序列化的底層實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • IDEA快速部署Spring?Boot?項目到Docker的實現(xiàn)方法

    IDEA快速部署Spring?Boot?項目到Docker的實現(xiàn)方法

    本文主要介紹了IDEA快速部署Spring?Boot?項目到Docker的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07

最新評論