该示例是很久以前的学习demo,仅供参考
package com.hxkj.fsslr.core.utils;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.hxkj.fsslr.core.config.ConstantKey;
import com.hxkj.fsslr.entity.Comment;
import com.hxkj.fsslr.entity.DataCollect;
import com.hxkj.fsslr.entity.EnumType;
import com.hxkj.fsslr.entity.EnumValue;
import com.hxkj.fsslr.entity.FileCenter;
import com.hxkj.fsslr.entity.FileShare;
import com.hxkj.fsslr.entity.FileType;
import com.hxkj.fsslr.entity.FriendLink;
import com.hxkj.fsslr.entity.LabelCenter;
import com.hxkj.fsslr.entity.Log;
import com.hxkj.fsslr.entity.NavBar;
import com.hxkj.fsslr.entity.Question;
import com.hxkj.fsslr.entity.ShareData;
import com.hxkj.fsslr.entity.SysUser;
import com.hxkj.fsslr.entity.ThirdLogin;
import com.hxkj.fsslr.entity.WebsiteVisit;
/**
* @ClassName: CuidUtils
* @Description: CUID工具类
* @author huzhihui_c@qq.com
* @date 2016年7月13日 下午5:47:00
*/
public class CuidUtils {
private static Logger logger = LoggerFactory.getLogger(CuidUtils.class);
private static Map<String,Integer> mapCuid = new Hashtable<>();
private static final Map<String,String> mapCuidName = new HashMap<>();
static{
initCuidRedis();
}
/**
* @Title: getCuid
* @Description: 得到全局唯一CUID
* @param b
* @return
* @return String
* @author huzhihui_c@qq.com
* @date 2016年7月14日 下午5:46:01
*/
@SuppressWarnings("unchecked")
public synchronized static String getCuid(String className){
mapCuid = (Map<String, Integer>) RedisUtils.get(ConstantKey.CUID_REDIS);
mapCuid.put(className, mapCuid.get(className)+1);
RedisUtils.save(ConstantKey.CUID_REDIS, mapCuid);
return mapCuidName.get(className)+TimeUtils.getCuitPreTime()+mapCuid.get(className).toString();
}
/**
* @Title: initCuidRedis
* @Description: 初始化redis保存cuid
* @return void
* @author huzhihui_c@qq.com
* @date 2016年7月20日 下午4:20:03
*/
private static void initCuidRedis(){
mapCuid.put(Comment.class.getName(), 0);
mapCuid.put(DataCollect.class.getName(), 0);
mapCuid.put(EnumType.class.getName(), 0);
mapCuid.put(EnumValue.class.getName(), 0);
mapCuid.put(FileCenter.class.getName(), 0);
mapCuid.put(FileShare.class.getName(), 0);
mapCuid.put(FileType.class.getName(), 0);
mapCuid.put(FriendLink.class.getName(), 0);
mapCuid.put(LabelCenter.class.getName(), 0);
mapCuid.put(Log.class.getName(), 0);
mapCuid.put(NavBar.class.getName(), 0);
mapCuid.put(Question.class.getName(), 0);
mapCuid.put(ShareData.class.getName(), 0);
mapCuid.put(SysUser.class.getName(), 0);
mapCuid.put(ThirdLogin.class.getName(), 0);
mapCuid.put(WebsiteVisit.class.getName(), 0);
mapCuidName.put(Comment.class.getName(), "COMMENT");
mapCuidName.put(DataCollect.class.getName(), "DATA_COLLECT");
mapCuidName.put(EnumType.class.getName(), "ENUM_TYPE");
mapCuidName.put(EnumValue.class.getName(), "ENUM_VALUE");
mapCuidName.put(FileCenter.class.getName(), "FILE_CENTER");
mapCuidName.put(FileShare.class.getName(), "FILE_SHARE");
mapCuidName.put(FileType.class.getName(), "FILE_TYPE");
mapCuidName.put(FriendLink.class.getName(), "FRIEND_LINK");
mapCuidName.put(LabelCenter.class.getName(), "LABEL_CENTER");
mapCuidName.put(Log.class.getName(), "LOG");
mapCuidName.put(NavBar.class.getName(), "NAV_BAR");
mapCuidName.put(Question.class.getName(), "QUESTION");
mapCuidName.put(ShareData.class.getName(), "SHARE_DATA");
mapCuidName.put(SysUser.class.getName(), "SYS_USER");
mapCuidName.put(ThirdLogin.class.getName(), "THIRD_LOGIN");
mapCuidName.put(WebsiteVisit.class.getName(), "WEBSITE_VISIT");
if(!RedisUtils.exists(ConstantKey.CUID_REDIS)){
logger.debug("----------:设置CUID_REDIS");
RedisUtils.save(ConstantKey.CUID_REDIS, mapCuid);
}else{
logger.debug("----------:存在CUID_REDIS");
}
}
}