⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clientcachemanager.java

📁 单点登陆
💻 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 + -