博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring 整合redis
阅读量:6247 次
发布时间:2019-06-22

本文共 4187 字,大约阅读时间需要 13 分钟。

用的是最新的jedis-2.6.2.jar这个包,这个和以前的有点不同。还需要添加spring-data-redis-1.2.1.RELEASE.jar和commons-pool2-2.3.jar。

在类路径下创建spring-redis-config.xml文件

复制代码
复制代码

由于引用配置文件,使用不了表达式,这里写死了。使用表达式启动就报错,我也不知道为什么。

复制代码
##redis.host=localhost  ##redis.port=6379##  redis.pass=    ##redis.maxIdle=300##  redis.maxTotal=512##redis.maxWaitMillis=1000 ##redis.testOnBorrow=true
复制代码

redis.properties文件配置。

以前的版本应该有配置redis.maxActive但是看了源码,是没有setMaxActive方法的,所以不能注入,改用了redis.maxTotal。就因为这个弄了挺长时间的。

在web.xml配置spring-redis-config.xml文件

复制代码
contextConfigLocation
classpath*:spring-redis-config.xml
复制代码

 

复制代码
import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.serializer.RedisSerializer;public abstract class AbstractBaseRedisDao
{ @Autowired protected RedisTemplate
redisTemplate; public void setRedisTemplate(RedisTemplate
redisTemplate) { this.redisTemplate = redisTemplate; } /** * 获取 RedisSerializer *
------------------------------
*/ protected RedisSerializer
getRedisSerializer() { return redisTemplate.getStringSerializer(); } }
复制代码

创建一个抽象类,然后让使用到的类都继承这个方法。

复制代码
@Service("areaRedisService")public class AreaRedisService
extends AbstractBaseRedisDao
{ public boolean add(final Area area) { boolean result = redisTemplate.execute(new RedisCallback
() { public Boolean doInRedis(RedisConnection connection) throws DataAccessException { RedisSerializer
serializer = getRedisSerializer(); byte[] key = serializer.serialize(area.getId()+""); byte[] name = serializer.serialize(area.getName()); return connection.setNX(key, name); } }); return result; } public Area get(final String keyId) { Area result = redisTemplate.execute(new RedisCallback
() { public Area doInRedis(RedisConnection connection) throws DataAccessException { RedisSerializer
serializer = getRedisSerializer(); byte[] key = serializer.serialize(keyId); byte[] value = connection.get(key); if (value == null) { return null; } String name = serializer.deserialize(value); return new Area(Integer.valueOf(keyId),name,null); } }); return result; } }
复制代码

 

复制代码
@Autowired    AreaRedisService
areaRedisService; private String path = "/WEB-INF/jsp/"; @RequestMapping("/area/redis.htm") public ModelAndView areaRedis(HttpServletRequest request, HttpServletResponse response,String name) throws Exception { ModelAndView mv = new ModelAndView(path+"add.html"); Area area = new Area(); area.setCreateTime(new Date()); area.setCommon(true); area.setDeleteStatus(false); area.setLevel(4); area.setName(name); area.setParentId(null); area.setSequence(1); area.setId(1); areaRedisService.add(area); mv.addObject("area", area); mv.addObject("arearedis",areaRedisService.get(area.getId()+"")); return mv; }
复制代码

这是controller的方法,这里使用了spring的注解。

使用注解,需要在上面的spring-redis-config.xml文件加入<context:component-scan base-package="基础包路径"/>配置了扫描路径可以不配置<context:annotation-config/>,因为前面的包含了后面的,他会激活@Controller,@Service,@Autowired,@Resource,@Component等注解。

http://www.cnblogs.com/hjy9420/p/4278002.html

 

转载于:https://www.cnblogs.com/softidea/p/5562295.html

你可能感兴趣的文章
《高性能Linux服务器构建实战》——1.6节Nginx性能优化技巧
查看>>
杨永智:我有一些区块链应用的经验可以传授 | 硬创公开课
查看>>
中国人民大学助力政府大数据预警预测平台
查看>>
直接法硅片助力光伏平价上网
查看>>
纵览各国关键信息基础设施配套网络安全法规建设
查看>>
阿里云增速连超亚马逊 云计算三巨头格局将成
查看>>
“想哭”来袭 信息安全产业会“笑”吗
查看>>
“互联网+大数据”成为审讯突破口
查看>>
联发科4G方案渐趋成熟 2016市场或将迎来大反转
查看>>
商场没有永久的敌人 英特尔拟为ARM生产芯片
查看>>
大数据时代:九个大数据应用领域
查看>>
再度入场 重资产探路 公交WiFi卷土重来
查看>>
首次曝光!在线视频衣物精确检索技术,开启刷剧败明星同款时代
查看>>
实战篇-六十六行完成简洁的Rss输出类
查看>>
世界各地GSM和LTE移动网络存在严重安全漏洞
查看>>
资源编排最佳实践之入门篇:云服务器如何从1到N?
查看>>
Grumpy:Google 用 Go 开发的 Python 运行时
查看>>
欧盟取消4家中国企业在晶体硅光伏组件及关键零部件双反案中的价格承诺
查看>>
采购杀毒软件 确保网络信息安全
查看>>
破局物联网时代,海尔靠这三步棋
查看>>