在SpringBoot项目中,Spring会自动配置好RedisTemplate,看下源码。
从源码可以看出,SpringBoot自动帮我们在容器中生成了一个RedisTemplate和一个StringRedisTemplate。但是,这个RedisTemplate的泛型是<Object,Object>,写代码不方便,需要写好多类型转换的代码;我们需要一个泛型为<String,Object>形式的RedisTemplate。
看到这个@ConditionalOnMissingBean注解后,就知道如果Spring容器中已经有了RedisTemplate对象了,这个自动配置的RedisTemplate就不会再实例化。因此我们可以自己写个配置类,配置RedisTemplate进行实例化。
既然自动配置不好用,就重新配置一个RedisTemplate,在工具类的同一目录下创建RedisConfig 配置类。代码如下:
package com.demo.Common;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.seri