Java中redisTemplate注入失敗NullPointerException異常問題解決
前言:
今天遇到一個需求,要求將數(shù)據(jù)庫中的一堆數(shù)據(jù)進(jìn)行一個根據(jù)區(qū)域劃分,因此需要將數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行劃分后再將熱數(shù)據(jù)丟到redis中進(jìn)行一個緩存處理,由于涉及到一個分頁提取的操作,所以這里存在redis中就采用List的結(jié)構(gòu),這里采用redisTemplate來實現(xiàn)數(shù)據(jù)的存儲和取出
問題出現(xiàn):
如下,在一番正確的環(huán)境配置后,最后通過 @Resource 來注入就可以進(jìn)行使用了嘛
@Resource private RedisTemplate redisTemplate;
但是最后的結(jié)果卻是出現(xiàn) java.lang.NullPointerException 異常,原因是redisTemplate沒有注入成功。
解決方案:
通過@PostConstruct注解初始化實例
@PostConstruct注解
用于在依賴注入完成后執(zhí)行初始化操作的方法上。當(dāng)一個bean被實例化并且所有的依賴注入完成后,被@PostConstruct注解標(biāo)記的方法將會被自動調(diào)用。這個注解通常用于執(zhí)行一些初始化任務(wù),例如初始化成員變量或者建立與其他組件的連接。
@Resource
private RedisTemplate<String, T> redisTemplate;
public static RedisTemplate redis;
@PostConstruct
public void getRedisTemplate() {
redis = this.redisTemplate;
}這樣子再次運(yùn)行就可以發(fā)現(xiàn),redis 變量就被成功注入啦~
工具類積累:
針對這種存儲java對象集合到redis的List結(jié)構(gòu)中的需求,這里總結(jié)了一個工具類給大家使用:
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) {
// 設(shè)置Key的String序列化
redis.setKeySerializer(RedisSerializer.string());
redis.opsForList().leftPushAll(key, list);
}
/**
* 將對象的列表數(shù)據(jù)從redis中的雙向列表中獲取出來,通過分頁進(jìn)行獲取
*/
public List<T> getDataListFromRedisList(String key, Class<T> clazz) {
// 設(shè)置Key的String序列化
redis.setKeySerializer(RedisSerializer.string());
return redis.opsForList().range(key, 0, -1);
}
}到此這篇關(guān)于Java中redisTemplate注入失敗NullPointerException異常問題解決的文章就介紹到這了,更多相關(guān)Java redisTemplate注入失敗 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java空指針異常NullPointerException的原因與解決方案
- 解決java.lang.NullPointerException問題(空指針異常)
- Java如何優(yōu)雅地避免空指針異常(NullPointerException)
- 詳解Java中NullPointerException異常的原因和解決辦法
- java.lang.NullPointerException異常問題解決方案
- 詳解Java中NullPointerException異常的原因詳解以及解決方法
- java.lang.NullPointerException 如何處理空指針異常的實現(xiàn)
- Java中NullPointerException的異常解決
相關(guān)文章
Java中Supplier和Consumer接口的使用超詳細(xì)教程
文章闡述了Java8中Supplier與Consumer函數(shù)式接口的設(shè)計理念及應(yīng)用價值,強(qiáng)調(diào)其通過封裝數(shù)據(jù)供給與消費(fèi)邏輯,提升代碼靈活性與可維護(hù)性,對比傳統(tǒng)匿名內(nèi)部類展現(xiàn)簡潔優(yōu)勢,并在策略、觀察者等設(shè)計模式實現(xiàn)高效應(yīng)用,為函數(shù)式編程提供標(biāo)準(zhǔn)化工具,感興趣的朋友跟隨小編一起看看吧2025-08-08
Spring AOP實現(xiàn)功能權(quán)限校驗功能的示例代碼
本篇文章主要介紹了Spring AOP實現(xiàn)功能權(quán)限校驗功能的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12
Java synchronized重量級鎖實現(xiàn)過程淺析
這篇文章主要介紹了Java synchronized重量級鎖實現(xiàn)過程,synchronized是Java里的一個關(guān)鍵字,起到的一個效果是"監(jiān)視器鎖",它的功能就是保證操作的原子性,同時禁止指令重排序和保證內(nèi)存的可見性2023-02-02
關(guān)于Filter中獲取請求體body后再次讀取的問題
這篇文章主要介紹了關(guān)于Filter中獲取請求體body后再次讀取的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
spring cloud config和bus組件實現(xiàn)自動刷新功能
今天通過本文給大家介紹spring cloud config和bus組件實現(xiàn)自動刷新功能,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-10-10
Java 連接Access數(shù)據(jù)庫的兩種方式
這篇文章主要介紹了Java 連接Access數(shù)據(jù)庫的兩種方式,本文著重講解使用JDBC連接操作Access數(shù)據(jù)庫,需要的朋友可以參考下2015-06-06
如何在mapper文件中使用in("str1","str2")
這篇文章主要介紹了如何在mapper文件中使用in("str1","str2"),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01

