1. 程式人生 > >21ThreadLocal解決重複查user的問題

21ThreadLocal解決重複查user的問題

 

解決重複查詢使用者問題

  1. 問題分析

在剛才提交程式碼的邏輯中,因為要用到登入的使用者資訊,因此再次查詢了SSO提供的介面,查詢使用者。

事實上,在之前的攔截器中,也已經查詢過使用者了。重複的查詢,增加了伺服器壓力,並且效率低。

我們能不能在攔截器中查詢後,儲存使用者資訊,後續的邏輯中可以直接獲取使用者資訊呢?

方案:

  1. 把使用者儲存到request域中,一次請求中可以共享
  2. 把使用者儲存到ThreadLocal中,同一次請求,屬於一個執行緒,可以共享

這裡我們採用方案2

===========================

定義ThreadLocal工具

 

攔截器中儲存User到ThreadLocal

 

提交訂單時通過ThreadLocal查詢

=====================================