package com.pro.webapp.util;
import java.util.Set;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.ibatis.cache.Cache;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
/*
* 使用第三方缓存服务器,处理二级缓存
*/
public class RedisCache implements Cache {
private static Logger logger = LoggerFactory.getLogger(RedisCache.class);
/** The ReadWriteLock. */
private final ReadWriteLock readWriteLock = new ReentrantReadWriteLock();
private String id;
private final String COMMON_CACHE_KEY = "COM:";
/**
* 按照一定规则标识key
*/
private String getKey(Object key) {
StringBuilder accum = new StringBuilder();
accum.append(COMMON_CACHE_KEY);
accum.append(this.id).append(":");
accum.append(DigestUtils.md5Hex(String.valueOf(key)));
return accum.toString();
}
/**
* redis key规则前缀
*/
private String getKeys() {
return COMMON_CACHE_KEY + this.id + ":*";
}
public RedisCache() {
}
public RedisCache(final String id) {
if (id == null) {
throw new IllegalArgumentException("必须传入ID");
}
logger.debug(">>>>>>>>>>>>>>>>>>>>>MybatisRedisCache:id=" + id);
this.id = id;
}
public String getId() {
return this.id;
}
public int getSize() {
return Integer.valueOf(RedisUtil.getJedis().dbSize().toString());
}
public void putObject(Object key, Object value) {
logger.debug(">>>>>>>>>>>>>>>>>>>>>>>>putObject:"+key+"="+value);
RedisUtil.getJedis().set(SerializeUtil.serialize(key.toString()), SerializeUtil.serialize(value));
}
public Object getObject(Object key) {
Object value = SerializeUtil.unserialize(RedisUtil.getJedis().get(SerializeUtil.serialize(key.toString())));
logger.debug(">>>>>>>>>>>>>>>>>>>>>>>>getObject:"+key+"="+value);
return value;
}
public Object removeObject(Object key) {
return RedisUtil.getJedis().expire(SerializeUtil.serialize(key.toString()),0);
}
public void clear() {
RedisUtil.getJedis().flushDB();
}
public ReadWriteLock getReadWriteLock() {
return readWriteLock;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
SSM框架学习宝典:入门、进阶、精通,全方位代码项目资 一、探索SSM的无限可能 SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一层楼。 二、资料亮点 基础教程与练习项目:从基础知识讲起,结合实际练习项目,让您轻松上手SSM开发。 进阶技术与案例分析:针对进阶开发者,提供深入的技术探讨和案例分析,助您深入理解SSM的高级特性。 实战项目与经验分享:通过实际项目实战,让您在实践中掌握SSM的运用,同时分享经验与心得,让您少走弯路。 三、适用人群与场景 无论您是初学者还是资深开发者,无论您是在校学生还是职场人士,本系列资料都将是您学习SSM的得力助手。适用于Java Web开发、企业级应用开发、个人项目实践等多个领域。 四、使用建议 系统学习:按照资料提供的顺序进行系统学习,确保知识体系的完整性。 实践为王:在学习过程中注重实践操作,通过实际项目加深理解。 持续反馈与调整:根据学习进度和反馈,适时调整学习策略,提高学习效果。 五、安全与责任 在使用SSM框架进行开发时,请确保遵循最佳实践和安全准则,以保障系统的稳定性和安全性。在使用提供的资料时,请遵守版权法规,尊重原作者的权益。让我们共同为推动SSM技术的发展而努力!
资源推荐
资源详情
资源评论
收起资源包目录
maven+ssm+redis 项目集成.zip (88个子文件)
jinpingmeichahuanggua
pro-parent
pro-dao
.classpath 1KB
.settings
org.eclipse.jdt.core.prefs 422B
org.eclipse.core.resources.prefs 115B
org.eclipse.wst.validation.prefs 48B
org.eclipse.wst.common.component 240B
org.eclipse.wst.common.project.facet.core.xml 167B
org.eclipse.m2e.core.prefs 86B
pom.xml 1KB
src
test
java
Solr.java 24B
main
java
com
pro
webapp
student
dao
StudentDao.java 173B
target
classes
com
pro
webapp
student
dao
StudentDao.class 247B
test-classes
Solr.class 237B
.project 992B
pro-util
.classpath 1KB
.settings
org.eclipse.jdt.core.prefs 422B
org.eclipse.core.resources.prefs 115B
org.eclipse.wst.common.component 241B
org.eclipse.wst.common.project.facet.core.xml 167B
org.eclipse.m2e.core.prefs 86B
pom.xml 884B
src
main
java
com
pro
webapp
util
SerializeUtil.java 931B
RedisUtil.java 2KB
RedisCache.java 2KB
target
classes
com
pro
webapp
util
RedisUtil.class 2KB
SerializeUtil.class 1KB
RedisCache.class 3KB
.project 993B
.settings
org.eclipse.core.resources.prefs 55B
org.eclipse.m2e.core.prefs 86B
pom.xml 7KB
pro-service
.classpath 1KB
.settings
org.eclipse.jdt.core.prefs 422B
org.eclipse.core.resources.prefs 115B
org.eclipse.wst.validation.prefs 48B
org.eclipse.wst.common.component 244B
org.eclipse.wst.common.project.facet.core.xml 167B
org.eclipse.m2e.core.prefs 86B
pom.xml 1KB
src
main
java
com
pro
webapp
student
service
StudentService.java 506B
target
classes
com
pro
webapp
student
service
StudentService.class 940B
.project 996B
pro-model
.classpath 1KB
.settings
org.eclipse.jdt.core.prefs 422B
org.eclipse.core.resources.prefs 115B
org.eclipse.wst.validation.prefs 48B
org.eclipse.wst.common.component 242B
org.eclipse.wst.common.project.facet.core.xml 167B
org.eclipse.m2e.core.prefs 86B
pom.xml 886B
src
main
java
com
pro
webapp
student
model
Student.java 686B
target
classes
com
pro
webapp
student
model
Student.class 1KB
.project 994B
.project 373B
pro-web
.classpath 1KB
.settings
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.jdt.core.prefs 422B
org.eclipse.wst.common.project.facet.core.prefs.xml 164B
org.eclipse.core.resources.prefs 150B
.jsdtscope 562B
org.eclipse.wst.validation.prefs 48B
org.eclipse.wst.common.component 2KB
org.eclipse.wst.common.project.facet.core.xml 292B
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.m2e.core.prefs 86B
pom.xml 987B
src
main
resources
spring-redis.xml 1KB
spring-mvc.xml 3KB
redis-config.properties 48B
log4j.properties 2KB
spring-mybatis.xml 6KB
config.properties 288B
java
com
pro
webapp
mapping
User.xml 659B
student
controller
StudentController.java 810B
webapp
WEB-INF
web.xml 2KB
views
sucess.jsp 358B
index.jsp 52B
target
classes
spring-redis.xml 1KB
spring-mvc.xml 3KB
redis-config.properties 48B
log4j.properties 2KB
spring-mybatis.xml 6KB
config.properties 288B
com
pro
webapp
mapping
User.xml 659B
student
controller
StudentController.class 1KB
m2e-wtp
web-resources
META-INF
MANIFEST.MF 104B
maven
com.pro.webapp
pro-web
pom.properties 214B
pom.xml 987B
.project 1KB
共 88 条
- 1
资源评论
01红C
- 粉丝: 1629
- 资源: 1098
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功