redisTemplate注入为空

springboot2.*集成redis时,redis工具类中的redisTemplate注入后总是为空。

  • 问题代码还原:

  1、工具类定义成静态工具类,@Resource注入redisTemplate

 1 public class RedisCacheUtil {
 2     @Resource
 3     private static RedisTemplate<String, Object> redisTemplate;
 4 
 5     /**
 6      * 普通缓存获取
 7      * @param key 键
 8      * @return 9      */
10     public static Object get(String key) {
11         return key == null ? null:redisTemplate.opsForValue().get(key); //redisTemplate对象一直为null
12     }
13 }    

  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);
    }

至此,问题解决,仅做记录。

原文地址:https://www.cnblogs.com/malefeng/p/10416557.html