欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中redisTemplate注入失敗NullPointerException異常問題解決

 更新時(shí)間:2023年08月29日 11:57:41   作者:學(xué)徒630  
這篇文章主要介紹了Java中redisTemplate注入失敗NullPointerException異常問題解決,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前言: 

今天遇到一個(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è)分頁提取的操作,所以這里存在redis中就采用List的結(jié)構(gòu),這里采用redisTemplate來實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)和取出

問題出現(xiàn):

如下,在一番正確的環(huán)境配置后,最后通過 @Resource 來注入就可以進(jìn)行使用了嘛

@Resource
private RedisTemplate redisTemplate;

但是最后的結(jié)果卻是出現(xiàn) java.lang.NullPointerException 異常,原因是redisTemplate沒有注入成功。

解決方案:

通過@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中的雙向列表中獲取出來,通過分頁進(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論