Java中redisTemplate注入失敗NullPointerException異常問題解決
前言:
今天遇到一個需求,要求將數(shù)據(jù)庫中的一堆數(shù)據(jù)進行一個根據(jù)區(qū)域劃分,因此需要將數(shù)據(jù)庫中的數(shù)據(jù)進行劃分后再將熱數(shù)據(jù)丟到redis中進行一個緩存處理,由于涉及到一個分頁提取的操作,所以這里存在redis中就采用List的結構,這里采用redisTemplate來實現(xiàn)數(shù)據(jù)的存儲和取出
問題出現(xiàn):
如下,在一番正確的環(huán)境配置后,最后通過 @Resource 來注入就可以進行使用了嘛
@Resource private RedisTemplate redisTemplate;
但是最后的結果卻是出現(xiàn) java.lang.NullPointerException
異常,原因是redisTemplate沒有注入成功。
解決方案:
通過@PostConstruct
注解初始化實例
@PostConstruct注解
用于在依賴注入完成后執(zhí)行初始化操作的方法上。當一個bean被實例化并且所有的依賴注入完成后,被@PostConstruct注解標記的方法將會被自動調用。這個注解通常用于執(zhí)行一些初始化任務,例如初始化成員變量或者建立與其他組件的連接。
@Resource private RedisTemplate<String, T> redisTemplate; public static RedisTemplate redis; @PostConstruct public void getRedisTemplate() { redis = this.redisTemplate; }
這樣子再次運行就可以發(fā)現(xiàn),redis 變量就被成功注入啦~
工具類積累:
針對這種存儲java對象集合到redis的List結構中的需求,這里總結了一個工具類給大家使用:
public class RedisUtil<T> { @Resource private RedisTemplate<String, T> redisTemplate; public static RedisTemplate redis; @PostConstruct public void getRedisTemplate() { redis = this.redisTemplate; } /** * 將對象的列表數(shù)據(jù)存入redis中的雙向列表中 */ public void savaDataListToRedisList(String key, List<T> list) { // 設置Key的String序列化 redis.setKeySerializer(RedisSerializer.string()); redis.opsForList().leftPushAll(key, list); } /** * 將對象的列表數(shù)據(jù)從redis中的雙向列表中獲取出來,通過分頁進行獲取 */ public List<T> getDataListFromRedisList(String key, Class<T> clazz) { // 設置Key的String序列化 redis.setKeySerializer(RedisSerializer.string()); return redis.opsForList().range(key, 0, -1); } }
到此這篇關于Java中redisTemplate注入失敗NullPointerException異常問題解決的文章就介紹到這了,更多相關Java redisTemplate注入失敗 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot中的@EnableAutoConfiguration注解解析
這篇文章主要介紹了SpringBoot中的@EnableAutoConfiguration注解解析,@EnableAutoConfiguration也是借助@Import的幫助,將所有符合自動配置條件的bean定義注冊到IoC容器,需要的朋友可以參考下2023-09-09Spring Boot + Mybatis-Plus實現(xiàn)多數(shù)據(jù)源的方法
這篇文章主要介紹了Spring Boot + Mybatis-Plus實現(xiàn)多數(shù)據(jù)源的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11IntelliJ IDEA 2019.3激活破解的詳細方法(親測有效,可激活至 2089&
本教程適用于 JetBrains 全系列產(chǎn)品,包括 Pycharm、IDEA、WebStorm、Phpstorm、Datagrip、RubyMine、CLion、AppCode 等,本教程無需修改 hosts 文件,對IntelliJ IDEA 2019.3激活破解的詳細方法的相關知識感興趣的朋友一起看看吧2020-09-09詳解jeefast和Mybatis實現(xiàn)二級聯(lián)動的問題
這篇文章主要介紹了詳解jeefast和Mybatis實現(xiàn)二級聯(lián)動的問題,本文通過圖文實例相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10關于spring中單例Bean引用原型Bean產(chǎn)生的問題及解決
這篇文章主要介紹了關于spring中單例Bean引用原型Bean產(chǎn)生的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06