91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解spring boot攔截器

發布時間:2020-07-20 14:58:08 來源:億速云 閱讀:188 作者:小豬 欄目:編程語言

小編這次要給大家分享的是詳解spring boot攔截器,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

前言

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

攔截器HandlerInterceptor

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

/**
 * 當前用戶的數據權限.
 */
@Slf4j
public class DataPermissionInterceptor implements HandlerInterceptor {
 @Override
 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
  logger.info("DataPermissionInterceptor.init");
  //業務邏輯,可能判斷當前登陸人存儲的數據權限類型,然后統一處理,拿到可以訪問的數據編號集合
  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/**");
 }
}

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

詳解spring boot攔截器

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

看完這篇關于詳解spring boot攔截器的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

云霄县| 宿松县| 泽库县| 万载县| 八宿县| 兴和县| 遵义市| 积石山| 鹰潭市| 漠河县| 梁平县| 兴和县| 红安县| 五指山市| 山东省| 白沙| 镶黄旗| 屏南县| 江北区| 基隆市| 平和县| 杭州市| 得荣县| 双柏县| 商都县| 准格尔旗| 方山县| 秦皇岛市| 阿克| 吉木乃县| 宝鸡市| 中方县| 双城市| 和田县| 张家界市| 松滋市| 亳州市| 融水| 巴东县| 和林格尔县| 军事|