1. 程式人生 > 程式設計 >如何解決redisTemplate注入為空問題

如何解決redisTemplate注入為空問題

springboot2.*整合redis時,redis工具類中的redisTemplate注入後總是為空。

問題程式碼還原:

  1、工具類定義成靜態工具類,@Resource注入redisTemplate

public class RedisCacheUtil {
  @Resource
  private static RedisTemplate<String,Object> redisTemplate;

  /**
   * 普通快取獲取
   * @param key 鍵
   * @return 值
   */
  public static Object get(String key) {
    return key == null ? null:redisTemplate.opsForValue().get(key); //redisTemplate物件一直為null
  }
}

  2、控制層直接呼叫工具類的靜態方法

  @RequestMapping("/getCache")
  public Object getCache(String key){
    return RedisCacheUtil.get(key);
  }

解決方案:

  1、將工具類注入到spring容器

@Component //注入spring容器
public class RedisCacheUtil {
  @Resource
  private RedisTemplate<String,Object> redisTemplate;
/**
   * 普通快取獲取
   * @param key 鍵
   * @return 值
   */
  public Object get(String key) {
    return key == null ? null : redisTemplate.opsForValue().get(key);
  }
}

  2、再將工具類bean注入呼叫方

@Resource
  private RedisCacheUtil redisCacheUtil;

  @RequestMapping("/getCache")
  public Object getCache(String key){
    return redisCacheUtil.get(key);
  }

至此,問題解決,僅做記錄。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。