网易首页 > 网易号 > 正文 申请入驻

Spring 5.0.4+ SpringMVC +mybatis 3.4.5+Jedis 2.9.0集成

0
分享至


Spring 5.0.4+ SpringMVC +mybatis 3.4.5+Jedis 2.9.0集成之

--Spring+Jedis集成

来源: http://bj9420.com

作者:wRitchie(吴理琪)

概述:本文主要讲解Jedis与Spring的在SSM项目中的集成,至于ssm框架本文不赘述。

1、pom.xml


redis.clients
jedis
2.9.0
org.springframework.data
spring-data-redis
2.0.6.RELEASE
com.barchart.wrap
barchart-wrap-jackson
1.8.6-build001

导jar包后如图所示:

2、创建redis.properties

redis.host=127.0.0.1
redis.port=6379
redis.password=redis
redis.maxIdle=400
redis.maxTotal=6000
redis.maxWaitMillis=1000
redis.blockWhenExhausted=true
redis.testOnBorrow=true
redis.timeout=15000
defaultCacheExpireTime=60

注意:redis.properties值后不要有任何空格

3、创建spring-data-redis.xml


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd"
default-lazy-init="false">
value="${redis.blockWhenExhausted}" />
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
destroy-method="destroy">
class="org.springframework.data.redis.core.RedisTemplate">
class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"/>

4、在applicationContext.xml中引入spring-data-redis.xml文件:


class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
classpath:mybatis-dev.properties
classpath:redis.properties

5、集成完毕,测试类


* @Title: SpringRedisTest.java
* @Description: Redis测试类
* @author wRitchie
* @date 2018年4月19日 下午4:24:12
* @version V1.0
* @Copyright (c): 2018 www.bj9420.com All rights reserved.
package writchie;
import java.util.concurrent.TimeUnit;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
* @author wRitchie

public class SpringRedisTest {
private static ApplicationContext applicationContext;
static {
applicationContext = new
ClassPathXmlApplicationContext("applicationContext.xml");
@Test
public void testRedisConnection() {
RedisTemplate redisTemplate = (RedisTemplate)
applicationContext.getBean("redisTemplate");
RedisSerializer stringSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(stringSerializer);
redisTemplate.setValueSerializer(stringSerializer);
redisTemplate.setHashKeySerializer(stringSerializer);
redisTemplate.setHashValueSerializer(stringSerializer);
String username = (String) redisTemplate.opsForValue().get("username");
System.out.println("username:" + username);
redisTemplate.opsForValue().set("username", "wuliqi", 5,
TimeUnit.MINUTES);
String username = (String) redisTemplate.opsForValue().get("username");
username = (String) redisTemplate.opsForValue().get("username");
System.out.println("***username:" + username);

6、通用服务类

通用redis服务接口:


* @Title: IRedisServer.java
* @Description: Redis服务接口
* @author wRitchie
* @date 2018年4月19日 下午4:55:18
* @version V1.0
* @Copyright (c): 2018 www.bj9420.com All rights reserved.
package com.bj9420.service.redis;
* @author wRitchie

public interface IRedisService {
public String getCacheValue(String cacheKey);
public void setCacheValue(String key, String value);
public void setCacheValueForTime(String key, String value, long time);
public void delCacheByKey(String key);
public long getExpireTime(String key);
public long getExpireTimeBySeconds(String key);
public long getExpireTimeTypeByMinute(String key);
public void getInc(String key, Long growthLength);

通用redis服务实现例


* @Title: RedisServerImpl.java
* @Description: Redis服务实现类
* @author wRitchie
* @date 2018年4月19日 下午4:57:18
* @version V1.0
* @Copyright (c): 2018 bj9420.com All rights reserved.
package com.bj9420.service.redis.impl;
import java.util.concurrent.TimeUnit;
import javax.annotation.Resource;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import org.springframework.stereotype.Service;
import cn.airbest.service.redis.IRedisService;
* @author wRitchie

@Service("redisService")
public class RedisServiceImpl implements IRedisService {
@Resource(name = "redisTemplate")
RedisTemplate redisTemplate;
* 获取缓存的地址
* @param key
* @return
public String getCacheValue(String key) {
RedisSerializer stringSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(stringSerializer);
redisTemplate.setValueSerializer(stringSerializer);
redisTemplate.setHashKeySerializer(stringSerializer);
redisTemplate.setHashValueSerializer(stringSerializer);
String cacheValue = (String) redisTemplate.opsForValue().get(key);
return cacheValue;
/**设置缓存值
* @param key
* @param value
public void setCacheValue(String key, String value) {
redisTemplate.opsForValue().set(key, value);

* 设置缓存值并设置有效期
* @param key
* @param value
public void setCacheValueForTime(String key, String value, long time) {
redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
/** 删除key值
* @param key
public void delCacheByKey(String key) {
redisTemplate.opsForValue().getOperations().delete(key);
redisTemplate.opsForHash().delete("");

* 获取token的有效期
* @param key
public long getExpireTime(String key) {
long time = redisTemplate.getExpire(key);
return time;

* 指定时间类型---秒
* @param key
* @return
public long getExpireTimeBySeconds(String key) {
long time = redisTemplate.getExpire(key, TimeUnit.SECONDS);
return time;

* @param key---分
* @return
public long getExpireTimeTypeByMinute(String key) {
long time = redisTemplate.getExpire(key, TimeUnit.MINUTES);
return time;

* 设置一个自增的数据
* @param key
* @param growthLength
public void getInc(String key, Long growthLength) {
redisTemplate.opsForValue().increment(key, growthLength);

7、在控制层Controller调用redis通用服务类

@Resource

private IRedisService redisService;

//1、设置缓存值并设置有效期

redisService.setCacheValueForTime("userName", "吴理琪", 60*10);//有效期10分钟

//2、设置缓存值

redisService.setCacheValue("userName", "吴理琪");//有效期10分钟

//3、获取缓存的值

String username =redisService.getCacheValue("userName");

说明:一般情况下,使用setCacheValue或setCacheValueForTime即可,将Java的Pojo对

象采用FastJson 转化为json字符串即。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
刘晓庆的瓜愈演愈烈!小男友再爆猛料私密视频流出,他得寸进尺了

刘晓庆的瓜愈演愈烈!小男友再爆猛料私密视频流出,他得寸进尺了

辣条小剧场
2024-11-09 06:22:17
校园版刘亦菲火了,桃花眼比刘亦菲本人还美,被众人围观疯狂拍照

校园版刘亦菲火了,桃花眼比刘亦菲本人还美,被众人围观疯狂拍照

柴叔带你看电影
2024-11-19 23:05:22
出手民生银行!憋了18年,刘永好终于反击

出手民生银行!憋了18年,刘永好终于反击

无冕财经
2024-11-20 17:00:33
唐人街算命大师卢先生,起卦算准特朗普当选,再起卦算2025三件事

唐人街算命大师卢先生,起卦算准特朗普当选,再起卦算2025三件事

风月观主
2024-11-20 08:05:03
太惨了!江苏无锡一学院发生持刀杀人事件:8死17伤 更多细节曝出

太惨了!江苏无锡一学院发生持刀杀人事件:8死17伤 更多细节曝出

小淇言说
2024-11-17 00:24:16
让你保持旺盛代谢的 9 个好习惯

让你保持旺盛代谢的 9 个好习惯

增肌减脂
2024-11-18 21:25:03
巴西G20峰会变天了!中国震撼出手,给新世界立8条规矩

巴西G20峰会变天了!中国震撼出手,给新世界立8条规矩

蓝色海边
2024-11-20 18:25:25
回顾:37岁猪肉铺老板娘出轨,与28岁送货员私会,双双被搅成肉泥

回顾:37岁猪肉铺老板娘出轨,与28岁送货员私会,双双被搅成肉泥

江东浪流史
2024-11-20 15:00:03
轰12+14+10拒三连败:威少200三双创78年纪录 底薪神龟狂刷纪录

轰12+14+10拒三连败:威少200三双创78年纪录 底薪神龟狂刷纪录

颜小白的篮球梦
2024-11-20 11:38:23
A股:明天(11月21日)周四,大盘走势预测!

A股:明天(11月21日)周四,大盘走势预测!

价值投资者
2024-11-20 17:44:14
谢逸枫:颤抖吧!前10月全国土地收入直线下滑堪称断崖式暴跌

谢逸枫:颤抖吧!前10月全国土地收入直线下滑堪称断崖式暴跌

谢逸枫看楼市
2024-11-20 14:17:19
80年代饭店的一斤饺子就是60个,这就是事实,为啥还有人不相信?

80年代饭店的一斤饺子就是60个,这就是事实,为啥还有人不相信?

人情皆文史
2024-11-20 14:36:28
张本智和、张本美和兄妹官宣退赛决定!日本乒乓遭受重创

张本智和、张本美和兄妹官宣退赛决定!日本乒乓遭受重创

十点街球体育
2024-11-20 11:16:54
伊朗刚刚传来消息!

伊朗刚刚传来消息!

星辰故事屋
2024-11-20 14:18:51
悲催!网传厦门一网约车司机猝死,网友:曾获跑单大赛中小组第3

悲催!网传厦门一网约车司机猝死,网友:曾获跑单大赛中小组第3

火山诗话
2024-11-20 13:11:27
英国作家谈国足主场缩窄:曼联好像会只加热主队座椅,不加热客队

英国作家谈国足主场缩窄:曼联好像会只加热主队座椅,不加热客队

直播吧
2024-11-20 15:15:13
紧急通知!紧急通知!东海紧张局势升级,我国正式发表最新声明!

紧急通知!紧急通知!东海紧张局势升级,我国正式发表最新声明!

星辰故事屋
2024-11-20 12:41:30
不准电动车加装挡风被?清华教授发声:冬天骑车那么冷,怎么禁?

不准电动车加装挡风被?清华教授发声:冬天骑车那么冷,怎么禁?

阿纂看事
2024-11-18 13:53:17
初一男生苦练“宋徽宗瘦金体”,老师0分伺候:不要挑战考试底线

初一男生苦练“宋徽宗瘦金体”,老师0分伺候:不要挑战考试底线

熙熙说教
2024-11-20 16:46:36
48岁马克龙对71岁妻子不仅是灵魂依赖,更是生理性喜欢,这是真爱

48岁马克龙对71岁妻子不仅是灵魂依赖,更是生理性喜欢,这是真爱

南权先生
2024-11-20 17:28:33
2024-11-20 23:20:49
wRitchie
wRitchie
IT实用技术应用、JAVA
11文章数 12关注度
往期回顾 全部

财经要闻

马建堂:经济已筑底 2025年要充满信心

头条要闻

拜登上周合影时曾迟到失去C位 疑欲与尹锡悦换位被拒

头条要闻

拜登上周合影时曾迟到失去C位 疑欲与尹锡悦换位被拒

体育要闻

踢成这样的国足,我们真心愿意付费

娱乐要闻

李玟墓地被曝杂草丛生,真相到底如何

科技要闻

钟睒睒喊话张一鸣要求道歉

汽车要闻

电池容量增加 全新Model Y效果图曝光

态度原创

亲子
家居
游戏
艺术
教育

亲子要闻

1 个神奇的小方法,居然能让娃乖乖刷牙、好好吃饭

家居要闻

以家为本 以爱为家

上单互换!HLE正式官宣Zeus加入!

艺术要闻

故宫珍藏的墨迹《十七帖》,比拓本更精良,这才是地道的魏晋写法

教育要闻

3分钟学会一个雅思7分句/段(第266期)

无障碍浏览 进入关怀版