在認證階段DaoAuthenticationProvider會調用UserDetailService查詢用戶的信息,這里是可以獲取到齊全的用戶信息的。由于JWT令牌中用戶身份信息來源于UserDetails,UserDetails中僅定義了username為用戶的身份信息,這里有兩個思路:第一是可以擴展UserDetails,使之包括更多的自定義屬性,第二也可以擴展username的內容 ,比如存入json數據內容作為username的內容。相比較而言,方案二比較簡單還不用破壞UserDetails的結構,我們采用方案二。查看全文>>
單元測試就是針對最小的功能單元編寫測試代碼,Java程序最小的功能單元是方法,因此,單元測試就是針對Java方法的測試,進而檢查方法的正確性。查看全文>>
QueryWrapper是MyBatis-Plus框架提供的一個查詢構造器,可以用于構建復雜的查詢條件,同時具有高度可定制的功能。下面是一些常見的用法和示例代碼。查看全文>>
Java的內存模型定義了Java程序在運行時的內存結構以及多線程情況下,多個線程之間如何共享內存。Java的內存模型保證了線程安全性,避免了多線程訪問共享內存時出現的數據競爭、死鎖等問題。查看全文>>
獲取FileChannel不能直接打開,必須通過 FileInputStream、FileOutputStream 或者 RandomAccessFile 來獲取 FileChannel,它們都有 getChannel 方法。查看全文>>
Runnable和Callable都是Java中用來實現多線程的接口。它們都表示可以在一個單獨的線程中執行的代碼塊。然而,它們之間有一些區別。查看全文>>