redisTemplate注入が空

4112 ワード

springboot2.*redisを統合する場合、redisツールクラスのredisTemplateは常に空になります.
  • 問題コード復元:
  • 1、ツールクラスを静的ツールクラスとして定義し、@Resource注入redisTemplate
     1 public class RedisCacheUtil {
     2     @Resource
     3     private static RedisTemplate 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 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);
        }

    これで問題は解決し,記録のみを行う.