【七】springboot整合redis(超详细)
?springboot篇章整體欄目:?
【一】springboot整合swagger(超詳細
【二】springboot整合swagger(自定義)(超詳細)
【三】springboot整合token(超詳細)
【四】springboot整合mybatis-plus(超詳細)(上)
【五】springboot整合mybatis-plus(超詳細)(下)
【六】springboot整合自定義全局異常處理
【七】springboot整合redis(超詳細)
【八】springboot整合AOP實現日志操作(超詳細)
【九】springboot整合定時任務(超詳細)
【十】springboot整合redis實現啟動服務即將熱點數據保存在全局以及redis(超詳細)
【十一】springboot整合quartz實現定時任務優化(超詳細)
【十二】springboot整合線程池解決高并發(超詳細,保你理解)
【十三】springboot整合異步調用并獲取返回值(超詳細)
【十四】springboot整合WebService(超詳細)
【十五】springboot整合WebService(關于傳參數)(超詳細)
【十六】springboot整合WebSocket(超詳細)
【十七】springboot整合WebSocket實現聊天室(超詳細)
【十八】springboot實現自定義全局異常處理
【十九】springboot整合ElasticSearch實戰(萬字篇)
【二十】springboot整合過濾器實戰
【二十一】springboot整合攔截器實戰并對比過濾器
【二十二】springboot整合activiti7(1) 實戰演示篇
【二十三】springboot整合spring事務詳解以及實戰
【二十四】springboot使用EasyExcel和線程池實現多線程導入Excel數據
【二十五】springboot整合jedis和redisson布隆過濾器處理緩存穿透
?
介紹:接下來我會把學習階段學到的框架等知識點進行整合,每一次整合是在前一章的基礎上進行的,所以后面的整合不會重復放前面的代碼。每次的demo我放在結尾,本次是接著上一章的內容延續的,只增加新增的或者修改的代碼。
上一章對全局異常進行了整合,可以處理統一拋出錯誤。
1、這章整合redis,用redis存儲token,實現一個用戶只保存一個token,登錄接口再次獲取一個新的token后,前一個token則無法使用,解決一個用戶可以多次登錄的問題。
2、實現用戶登錄3次就鎖定用戶賬戶,無法再請求登錄接口。
qq交流群導航——>231378628
先展示一下目錄結構:?
?
第一步:修改yml配置文件
?
注意:是在spring:下面,database是選擇存在第幾個庫,如下:
?
此處我選擇的是“1”,所以存在為“1”的庫。
redis的密碼在安裝時已經設置,也可以為空。若未安裝redis,請在csdn尋找大佬的安裝教程,不復雜。
第二步:新增redis操作工具類
@Component public class RedisUtils {@Autowiredprivate RedisTemplate<String, String> redisTemplate;/*** 讀取緩存** @param key* @return*/public String get(final String key) {return redisTemplate.opsForValue().get(key);}/*** 寫入緩存*/public boolean set(final String key, String value) {boolean result = false;try {redisTemplate.opsForValue().set(key, value);result = true;} catch (Exception e) {e.printStackTrace();}return result;}/*** 寫入緩存,并設置過期時間** @param key* @param value* @param timeout* @param unit* @return*/public boolean set(final String key, String value, long timeout, TimeUnit unit) {boolean result = false;try {redisTemplate.opsForValue().set(key, value, timeout, unit);result = true;} catch (Exception e) {e.printStackTrace();}return result;}/*** 更新緩存*/public boolean getAndSet(final String key, String value) {boolean result = false;try {redisTemplate.opsForValue().getAndSet(key, value);result = true;} catch (Exception e) {e.printStackTrace();}return result;}/*** 刪除緩存*/public boolean delete(final String key) {boolean result = false;try {redisTemplate.delete(key);result = true;} catch (Exception e) {e.printStackTrace();}return result;} }不一定用這個,網上到處有很多更詳細的工具類,按需使用。
第三步:改造token攔截器
原來的代碼(上幾章都有代碼):
?
改造:
注入redis工具類。
?
修改方法。
?
到此實現了一個用戶只存在一個token的效果,下面改造登錄實現類代碼,如下:
?
??把登陸失敗的次數存入redis,若達到3次則直接拋出異常,不再請求接口。
?第三步:演示
輸入正確賬號密碼。
?
將此token拿去請求接口,請求成功
?
重新請求登錄接口,生成新的token,拿去請求剛才的接口,新token可以請求成功,舊的token無法再請求成功。
?
?
?用正確的賬戶錯誤的密碼登錄。
?
?錯誤三次之后。
?
本期整合到此完畢,接下來會繼續更新加強整合,盡情期待。
訪問地址:http://localhost:8088/swagger-ui.html或者http://localhost:8088/doc.html
demo地址:studydemo/整合swagger at main · zrc11/studydemo · GitHub
碼字不易,若幫到各位,幫忙三連,感謝
?
?
?
總結
以上是生活随笔為你收集整理的【七】springboot整合redis(超详细)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 希望我讲明白了G1 GC的过程
- 下一篇: 招募 | “壹脑云科研圈“招募新成员啦