91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 21KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-14
  • 語言: 其他
  • 標簽: RedisSpring??

資源簡介

Redis+Spring緩存實例(windows環境,附實例源碼及詳解)

資源截圖

代碼片段和文件信息

package?com.luo.redis.cache;

import?java.io.Serializable;
import?java.util.concurrent.TimeUnit;
import?org.aopalliance.intercept.MethodInterceptor;
import?org.aopalliance.intercept.MethodInvocation;
import?org.springframework.data.redis.core.RedisTemplate;
import?org.springframework.data.redis.core.ValueOperations;

public?class?MethodCacheInterceptor?implements?MethodInterceptor?{

private?RedisTemplateject>?redisTemplate;
private?Long?defaultCacheExpireTime?=?10l;?//?緩存默認的過期時間這里設置了10秒

public?object?invoke(MethodInvocation?invocation)?throws?Throwable?{
object?value?=?null;

String?targetName?=?invocation.getThis().getClass().getName();
String?methodName?=?invocation.getMethod().getName();

object[]?arguments?=?invocation.getArguments();
String?key?=?getCacheKey(targetName?methodName?arguments);

try?{
//?判斷是否有緩存
if?(exists(key))?{
return?getCache(key);
}
//?寫入緩存
value?=?invocation.proceed();
if?(value?!=?null)?{
final?String?tkey?=?key;
final?object?tvalue?=?value;
new?Thread(new?Runnable()?{
public?void?run()?{
setCache(tkey?tvalue?defaultCacheExpireTime);
}
}).start();
}
}?catch?(Exception?e)?{
e.printStackTrace();
if?(value?==?null)?{
return?invocation.proceed();
}
}
return?value;
}

/**
?*?創建緩存key
?*
?*?@param?targetName
?*?@param?methodName
?*?@param?arguments
?*/
private?String?getCacheKey(String?targetName?String?methodName
object[]?arguments)?{
StringBuffer?sbu?=?new?StringBuffer();
sbu.append(targetName).append(“_“).append(methodName);
if?((arguments?!=?null)?&&?(arguments.length?!=?0))?{
for?(int?i?=?0;?i? sbu.append(“_“).append(arguments[i]);
}
}
return?sbu.toString();
}



/**
?*?判斷緩存中是否有對應的value
?*?
?*?@param?key
?*?@return
?*/
public?boolean?exists(final?String?key)?{
return?redisTemplate.hasKey(key);
}

/**
?*?讀取緩存
?*?
?*?@param?key
?*?@return
?*/
public?object?getCache(final?String?key)?{
object?result?=?null;
ValueOperationsject>?operations?=?redisTemplate
.opsForValue();
result?=?operations.get(key);
return?result;
}



/**
?*?寫入緩存
?*?
?*?@param?key
?*?@param?value
?*?@return
?*/
public?boolean?setCache(final?String?key?object?value?Long?expireTime)?{
boolean?result?=?false;
try?{
ValueOperationsject>?operations?=?redisTemplate
.opsForValue();
operations.set(key?value);
redisTemplate.expire(key?expireTime?TimeUnit.SECONDS);
result?=?true;
}?catch?(Exception?e)?{
e.printStackTrace();
}
return?result;
}

public?void?setRedisTemplate(
RedisTemplateject>?redisTemplate)?{
this.redisTemplate?=?redisTemplate;
}
}


?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-01-14?08:33??redis_project\
?????文件????????1431??2016-01-13?21:22??redis_project\.classpath
?????文件?????????565??2016-01-13?21:22??redis_project\.project
?????目錄???????????0??2016-01-14?08:33??redis_project\.settings\
?????文件?????????131??2016-01-13?22:12??redis_project\.settings\org.eclipse.core.resources.prefs
?????文件?????????243??2016-01-13?21:22??redis_project\.settings\org.eclipse.jdt.core.prefs
?????文件??????????90??2016-01-13?21:22??redis_project\.settings\org.eclipse.m2e.core.prefs
?????文件????????3306??2016-01-13?21:26??redis_project\pom.xml
?????目錄???????????0??2016-01-14?08:33??redis_project\src\
?????目錄???????????0??2016-01-14?08:33??redis_project\src\main\
?????目錄???????????0??2016-01-14?08:33??redis_project\src\main\java\
?????目錄???????????0??2016-01-14?08:33??redis_project\src\main\java\com\
?????目錄???????????0??2016-01-14?08:33??redis_project\src\main\java\com\luo\
?????目錄???????????0??2016-01-14?08:33??redis_project\src\main\java\com\luo\redis\
?????目錄???????????0??2016-01-14?08:33??redis_project\src\main\java\com\luo\redis\cache\
?????文件????????2953??2016-01-14?09:20??redis_project\src\main\java\com\luo\redis\cache\MethodCacheInterceptor.java
?????目錄???????????0??2016-01-14?08:33??redis_project\src\main\java\com\luo\service\
?????文件?????????112??2016-01-13?22:05??redis_project\src\main\java\com\luo\service\RedisTestService.java
?????目錄???????????0??2016-01-14?08:33??redis_project\src\main\java\com\luo\service\impl\
?????文件?????????337??2016-01-13?23:48??redis_project\src\main\java\com\luo\service\impl\RedisTestServiceImpl.java
?????目錄???????????0??2016-01-14?08:33??redis_project\src\main\resources\
?????文件????????3313??2016-01-14?09:23??redis_project\src\main\resources\application.xml
?????目錄???????????0??2016-01-14?08:33??redis_project\src\main\resources\properties\
?????文件?????????612??2016-01-14?09:33??redis_project\src\main\resources\properties\redis.properties
?????目錄???????????0??2016-01-14?08:33??redis_project\src\test\
?????目錄???????????0??2016-01-14?08:33??redis_project\src\test\java\
?????目錄???????????0??2016-01-14?08:33??redis_project\src\test\java\com\
?????目錄???????????0??2016-01-14?08:33??redis_project\src\test\java\com\luo\
?????目錄???????????0??2016-01-14?08:33??redis_project\src\test\java\com\luo\baseTest\
?????文件?????????573??2016-01-12?23:27??redis_project\src\test\java\com\luo\baseTest\SpringTestCase.java
?????目錄???????????0??2016-01-14?08:33??redis_project\src\test\java\com\luo\service\
............此處省略24個文件信息

評論

共有 條評論

相關資源