之前登錄系統用jwt的時候, 用RedisTemplate 使用redis, 遇到過這樣一個問題, 在token驗證攔截器 中要使用到RedisTemplate 連接到redis 取出存進去的token, 結果注入RedisTemplate時沒注入進去, 為null了. 想想也對, 攔截器在上下文context之前, 怎么會注入呢
我的攔截器如下:
在自定義WebConfig中加入上面定義的攔截器:
使用postman調用的時候。發現出現了空指針異常,debug發現,AccessLimitInterceptor中的Redistemplate為null。靜下來想一想,攔截器加載的時間點在springcontext之前,即在bean實例化之前,所以在攔截器中注入自然為null 。那么我們就讓攔截器執行的時候實例化攔截器Bean,在攔截器配置類里面先實例化攔截器,然后再獲取就能解決這個問題啦。
springBoot 使用RedisTemplate 整合Redis 詳見 SpringBoot使用RedisTemplate整合Redis