springboot引入redis报org.springframework.data.redis.core.redistemplate
在学习redis时,发现导入redistemplate和rediscachemanager失败,反复思索,终于找到解决办法,至此记下以便日后查阅。
pom.xml引入如下:
<dependency>
<groupid>org.springframework.data</groupid>
<artifactid>spring-data-redis</artifactid>
</dependency>redisconfig类代码:
package com.neo.springboot.config;
import java.lang.reflect.method;
import org.springframework.cache.cachemanager;
import org.springframework.cache.annotation.cachingconfigurersupport;
import org.springframework.cache.annotation.enablecaching;
import org.springframework.cache.interceptor.keygenerator;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
import org.springframework.data.redis.cache.rediscachemanager;
import org.springframework.data.redis.connection.redisconnectionfactory;
import org.springframework.data.redis.core.redistemplate;
import org.springframework.data.redis.core.stringredistemplate;
import org.springframework.data.redis.serializer.jackson2jsonredisserializer;
import com.fasterxml.jackson.annotation.propertyaccessor;
import com.fasterxml.jackson.databind.objectmapper;
@configuration
@enablecaching
public class redisconfig extends cachingconfigurersupport {
public keygenerator keygenerator() {
return new keygenerator() {
@override
public object generate(object target, method method, object... params) {
stringbuilder sb = new stringbuilder();
sb.append(target.getclass().getname());
sb.append(method.getname());
for (object object : params) {
sb.append(object.tostring());
}
return sb.tostring();
}
};
}
@suppresswarnings("rawtypes")
@bean
public cachemanager cachemanager(redistemplate redistemplate) {
rediscachemanager rcm = new rediscachemanager(redistemplate);
// 设置缓存的过期时间
// rcm.setdefaultexpiration(60);//秒
return rcm;
}
@bean
public redistemplate<string, string> redistemplate(redisconnectionfactory factory) {
stringredistemplate template = new stringredistemplate(factory);
jackson2jsonredisserializer<object> jackson2jsonredisserializer = new jackson2jsonredisserializer<>(
object.class);
objectmapper om = new objectmapper();
om.setvisibility(propertyaccessor.all, jsonautodetect.visibility.any);
om.enabledefaulttyping(objectmapper.defaulttyping.non_final);
jackson2jsonredisserializer.setobjectmapper(om);
template.setvalueserializer(jackson2jsonredisserializer);
template.afterpropertiesset();
return template;
}
}
报错引用:

解决
在pom.xml中加入版本号即可
<dependency>
<groupid>org.springframework.data</groupid>
<artifactid>spring-data-redis</artifactid>
<version>1.7.1.release</version>
</dependency>类找不到问题解决

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论