当前位置:  编程技术>移动开发
本页文章导读:
    ▪缓存的处置        缓存的处理 缓存的处理 /** * $Id$ * Copyright 2009-2010 Oak Pacific Interactive. All rights reserved. */ package com.xiaonei.wap.fuxi.service.impl; import java.util.Date; import org.apache.commons.logging.Log; import org.apache.commo.........
    ▪ Andorid Ubuntu 11.4 中装配sun-java5-jdk        Andorid Ubuntu 11.4 中安装sun-java5-jdk 由于Ubuntu 高版本不再支持sun-java5-jdk,所以使用自带的更新工具是无法更新到 sun-java5-jdk的,因此需要手动添加更新源,我使用的是 163的镜像源,速度很快   .........
    ▪ 普遍的广泛的规定发给发的       广泛的广泛的规定发给发的 给法国的风格的风格 ......

[1]缓存的处置
    来源: 互联网  发布时间: 2014-02-18
缓存的处理
缓存的处理
/**
 * $Id$
 * Copyright 2009-2010 Oak Pacific Interactive. All rights reserved.
 */
package com.xiaonei.wap.fuxi.service.impl;

import java.util.Date;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert;

import com.renren.xcache.XCache;
import com.xiaonei.wap.framework.cache.XCacheManager2;
import com.xiaonei.wap.fuxi.dao.IUserAccessFlowDAO;
import com.xiaonei.wap.fuxi.model.UserAccessFlow;
import com.xiaonei.wap.fuxi.service.IUserAccessService;

/**
 * 
 * @author <a href="mailto:qiao.wang@renren-inc.com">王侨</a>
 * @createTime 2011-7-21下午02:37:12
 */
public class UserAccessServiceImpl extends BaseBusinessService implements IUserAccessService,
        InitializingBean {

    /**
     * Logger for this class
     */
    private final Log logger = LogFactory.getLog(UserAccessServiceImpl.class);

    private static final String CACHE_TYPE_USER_ACCESS_FLOW = "user_access_flow";

    // user access缓存时间,默认1天
    private int userAccessDefaultCacheTime = XCache.EXPIRE_DAY * 1;

    @Autowired
    private IUserAccessFlowDAO userAccessFlowDAO;

    /**
     * 基础方法,根据 userId获取访问基本信息
     * 
     * @param userId
     * @return
     */
    private UserAccessFlow getUserAccessFlow(int userId) {
        if (userId < 0) {
            return null;
        }
        //从缓存中取
        XCacheManager2 cache = XCacheManager2.getCacheManager(CACHE_TYPE_USER_ACCESS_FLOW);
        UserAccessFlow userAccessFlow = cache.get(String.valueOf(userId), UserAccessFlow.class);
        if (userAccessFlow == null) {
            userAccessFlow = loadUserAccessFlowFromDb(userId);
        }
        return userAccessFlow;
    }

    /**
     * 从db中取一条userAccessFlow,放入缓存
     * 
     * @param userId
     * @return
     */
    private UserAccessFlow loadUserAccessFlowFromDb(int userId) {
        UserAccessFlow userAccessFlow = userAccessFlowDAO.find(userId);
        if (userAccessFlow == null) {
            return null;
        }
        String key = String.valueOf(userId);
        //存入缓存
        XCacheManager2 cache = XCacheManager2.getCacheManager(CACHE_TYPE_USER_ACCESS_FLOW);
        cache.save(key, userAccessFlow, UserAccessFlow.class, userAccessDefaultCacheTime);
        return userAccessFlow;
    }

    /**
     * 基础方法,向db中存入一条记录
     * 
     * @param userId
     * @param access
     * @return
     */
    private long createUserAccess(int userId, int access) {
        if (userId < 0) {
            //取不到userId返回新版
            return 0;
        }

        //第一次访问,db中无记录,将access,存入db
        UserAccessFlow userAccessFlow = buildUserAccessFlow(userId, access);
        if (userAccessFlow == null) {
            return 0;
        }

        long result = 0;
        try {
            result = userAccessFlowDAO.create(userAccessFlow);
            //新增数据后删除缓存
            //XCacheManager2 cache = XCacheManager2.getCacheManager(CACHE_TYPE_USER_ACCESS_FLOW);
            //cache.delete(String.valueOf(userId), UserAccessFlow.class);
            
        } catch (Exception e) {
            logger.error("creatUserAccessFlow error, userId:" + userAccessFlow.getUserId(), e);
        }

        return result;
    }

    /**
     * 返回access的值0,旧版;1新版
     * 
     * @param userId
     * @param access
     */
    @Override
    public int getUserAccess(int userId, int access) {
        if (userId < 0) {
            //取不到userId返回新版
            return 1;
        }
        UserAccessFlow userAccess = getUserAccessFlow(userId);

        // 第一次访问,db中无记录,将access,存入db
        if (userAccess == null) {
            createUserAccess(userId, access);
            return access;
        }

        return userAccess.getAccess();
    }

    @Override
    public int updateUserAccess(int userId, int access) {
        if (userId < 0) {
            //取不到userId返回新版
            return 0;
        }

        UserAccessFlow userAccessFlow = buildUserAccessFlow(userId, access);
        if (userAccessFlow == null) {
            return 0;
        }

        int result = 0;
        try {
            //更新数据之前删除缓存
            //XCacheManager2 cache = XCacheManager2.getCacheManager(CACHE_TYPE_USER_ACCESS_FLOW);
            //cache.delete(String.valueOf(userId), UserAccessFlow.class);
            result = userAccessFlowDAO.update(userAccessFlow);
        } catch (Exception e) {
            logger.error("updateUserAccessFlow error, userId:" + userAccessFlow.getUserId(), e);
        }
        return result;
    }

    /**
     * @param userId
     * @param access
     * @return
     */
    private UserAccessFlow buildUserAccessFlow(int userId, int access) {
        UserAccessFlow userAccessFlow = new UserAccessFlow();
        userAccessFlow.setAccess(access);
        userAccessFlow.setUserId(userId);
        userAccessFlow.setAddTime(new Date());
        return userAccessFlow;
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        Assert.notNull(userAccessFlowDAO, "userAccessFlowDAO is required!");
    }

}


    
[2] Andorid Ubuntu 11.4 中装配sun-java5-jdk
    来源: 互联网  发布时间: 2014-02-18
Andorid Ubuntu 11.4 中安装sun-java5-jdk

由于Ubuntu 高版本不再支持sun-java5-jdk,所以使用自带的更新工具是无法更新到 sun-java5-jdk的,因此需要手动添加更新源,我使用的是 163的镜像源,速度很快

 

步骤如下:

 

1.运行命令 sudo gedit /etc/apt/sources.list

2.打开 sources.list 后在最后添加 deb http://mirrors.163.com/ubuntu/ hardy main multiverse 保存关闭

3.运行命令 sudo apt-get update

4.运行命令 sudo apt-get install sun-java5-jdk 就可以下载安装 java5

 

 

 

 

 

Ubuntu官方的文档如下:

 

如果你正在运行 Ubuntu,请尽量使用像 aptitude 或者 synaptic 一样的软件包管理器,代替人工手动操作的方式从这个网页下载并安装软件包。

您可以使用以下列表中的任何一个源镜像只要往您的 /etc/apt/sources.list 文件中像下面这样添加一行:

deb http://ubuntu.mirror.cambrium.nl/ubuntu/
 hardy main multiverse

请使用最终确定的源镜像替换 ubuntu.mirror.cambrium.nl/ubuntu/ 。

 

 


    
[3] 普遍的广泛的规定发给发的
    来源: 互联网  发布时间: 2014-02-18
广泛的广泛的规定发给发的
给法国的风格的风格

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3