Java中redisTemplate注入失敗NullPointerException異常問(wèn)題解決
前言:
今天遇到一個(gè)需求,要求將數(shù)據(jù)庫(kù)中的一堆數(shù)據(jù)進(jìn)行一個(gè)根據(jù)區(qū)域劃分,因此需要將數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行劃分后再將熱數(shù)據(jù)丟到redis中進(jìn)行一個(gè)緩存處理,由于涉及到一個(gè)分頁(yè)提取的操作,所以這里存在redis中就采用List的結(jié)構(gòu),這里采用redisTemplate來(lái)實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)和取出
問(wèn)題出現(xiàn):
如下,在一番正確的環(huán)境配置后,最后通過(guò) @Resource 來(lái)注入就可以進(jìn)行使用了嘛
@Resource private RedisTemplate redisTemplate;
但是最后的結(jié)果卻是出現(xiàn) java.lang.NullPointerException 異常,原因是redisTemplate沒(méi)有注入成功。
解決方案:
通過(guò)@PostConstruct注解初始化實(shí)例
@PostConstruct注解
用于在依賴注入完成后執(zhí)行初始化操作的方法上。當(dāng)一個(gè)bean被實(shí)例化并且所有的依賴注入完成后,被@PostConstruct注解標(biāo)記的方法將會(huì)被自動(dòng)調(diào)用。這個(gè)注解通常用于執(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 變量就被成功注入啦~
工具類積累:
針對(duì)這種存儲(chǔ)java對(duì)象集合到redis的List結(jié)構(gòu)中的需求,這里總結(jié)了一個(gè)工具類給大家使用:
public class RedisUtil<T> {
@Resource
private RedisTemplate<String, T> redisTemplate;
public static RedisTemplate redis;
@PostConstruct
public void getRedisTemplate() {
redis = this.redisTemplate;
}
/**
* 將對(duì)象的列表數(shù)據(jù)存入redis中的雙向列表中
*/
public void savaDataListToRedisList(String key, List<T> list) {
// 設(shè)置Key的String序列化
redis.setKeySerializer(RedisSerializer.string());
redis.opsForList().leftPushAll(key, list);
}
/**
* 將對(duì)象的列表數(shù)據(jù)從redis中的雙向列表中獲取出來(lái),通過(guò)分頁(yè)進(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異常問(wèn)題解決的文章就介紹到這了,更多相關(guān)Java redisTemplate注入失敗 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java空指針異常NullPointerException的原因與解決方案
- 解決java.lang.NullPointerException問(wèn)題(空指針異常)
- Java如何優(yōu)雅地避免空指針異常(NullPointerException)
- 詳解Java中NullPointerException異常的原因和解決辦法
- java.lang.NullPointerException異常問(wèn)題解決方案
- 詳解Java中NullPointerException異常的原因詳解以及解決方法
- java.lang.NullPointerException 如何處理空指針異常的實(shí)現(xiàn)
- Java中NullPointerException的異常解決
相關(guān)文章
五種SpringBoot實(shí)現(xiàn)數(shù)據(jù)加密存儲(chǔ)的方式總結(jié)
這篇文章主要為大家詳細(xì)介紹了五種常見(jiàn)數(shù)據(jù)加密存儲(chǔ)的方法(結(jié)合SpringBoot和MyBatisPlus框架進(jìn)行實(shí)現(xiàn)),文中的示例代碼講解詳細(xì),需要的可以參考下2023-11-11
Spring加載properties文件的兩種方式實(shí)例詳解
這篇文章主要介紹了Spring加載properties文件的兩種方式,需要的朋友可以參考下2018-02-02
SharedWorkerGlobalScope屬性數(shù)據(jù)共享示例解析
這篇文章主要為大家介紹了SharedWorkerGlobalScope屬性數(shù)據(jù)共享示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
mybatis自動(dòng)生成時(shí)如何設(shè)置不生成Example類詳解
這篇文章主要給大家介紹了關(guān)于mybatis自動(dòng)生成時(shí)如何設(shè)置不生成Example類的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-05-05
java中阻塞隊(duì)列和非阻塞隊(duì)列的實(shí)現(xiàn)
在Java并發(fā)編程中,阻塞隊(duì)列和非阻塞隊(duì)列是兩種主要的隊(duì)列類型,分別適用于不同的場(chǎng)景,了解這兩種隊(duì)列的特點(diǎn)和工作機(jī)制,可以幫助開(kāi)發(fā)者更好地選擇合適的數(shù)據(jù)結(jié)構(gòu)解決并發(fā)問(wèn)題2024-10-10
jsch中ChannelShell與ChannelExec的區(qū)別及說(shuō)明
這篇文章主要介紹了jsch中ChannelShell與ChannelExec的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
懶人 IDEA 插件推薦: EasyCode 一鍵幫你生成所需代碼(Easycode用法)
這篇文章主要介紹了懶人 IDEA 插件推薦: EasyCode 一鍵幫你生成所需代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
Spring Cloud Zuul路由網(wǎng)關(guān)服務(wù)過(guò)濾實(shí)現(xiàn)代碼
這篇文章主要介紹了Spring Cloud Zuul路由網(wǎng)關(guān)服務(wù)過(guò)濾實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04

