📄 clientcachemanager.java
字号:
package net.s3o.client.cache;
import java.util.Map;
import net.s3o.common.UserInfoWrapper;
import net.s3o.core.cache.S3OEhCacheFactory;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.Assert;
public class ClientCacheManager implements InitializingBean,DisposableBean {
private S3OEhCacheFactory cacheFactory=null;
public static Cache usersCacheByUserId = null;
public static long timeToIdle = 1000;
public static long timeToLive = 1000;
public void afterPropertiesSet() throws Exception {
Assert.notNull(cacheFactory,"属性 cacheFactory 没有指定.");
usersCacheByUserId=cacheFactory.getCacheByName("usersCacheByUserId");
timeToIdle=usersCacheByUserId.getTimeToIdleSeconds();
timeToLive=usersCacheByUserId.getTimeToLiveSeconds();
}
public static boolean hasLogout(String userId){
return userId==null||getUserInfoByUserId(userId)==null;
}
public S3OEhCacheFactory getCacheFactory() {
return cacheFactory;
}
public void setCacheFactory(S3OEhCacheFactory cacheFactory) {
this.cacheFactory = cacheFactory;
}
public static Map getUserInfoByUserId(String userId){
Element elem=usersCacheByUserId.get(userId);
if (elem!=null) {
return (Map)elem.getObjectValue();
}
return null;
}
public static void setUserInfo(Map userInfoMap){
removeUserInfoByUserId((String)userInfoMap.get(UserInfoWrapper.KEY_OF_USER_ID));
setUserInfoByUserId(userInfoMap);
}
public static boolean removeUserInfoByUserId(String userId){
return usersCacheByUserId.remove(userId);
}
/* ==================================== */
protected static void setUserInfoByUserId(Map userInfoMap){
String userid=(String)userInfoMap.get(UserInfoWrapper.KEY_OF_USER_ID);
usersCacheByUserId.put(new Element(userid,userInfoMap));
}
protected static void clearUsersCacheByUserId(){
usersCacheByUserId.removeAll();
}
public void destroy() {
usersCacheByUserId = null;
timeToIdle=1000;
timeToLive=1000;
cacheFactory.destroy();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -