- 浏览: 107077 次
- 性别:
- 来自: 深圳
最新评论
-
qq1988627:
gaolegao2008 写道说的是个啥。有冲突怎么办呢。也不 ...
xfire与spring组合创建webservice -
gaolegao2008:
说的是个啥。有冲突怎么办呢。也不说个解决的办法。唉
xfire与spring组合创建webservice -
xiaoliefengfeng:
加油,为码农争光啊
我要的其实并不多 你为什么拒绝我 -
qq1988627:
huchaoqqqq 写道用的ext几版本做的呢,有没有相关资 ...
第一次使用Ext写系统 -
huchaoqqqq:
用的ext几版本做的呢,有没有相关资料,我也想最近弄下ext ...
第一次使用Ext写系统
package com.byd.mes.util.cache; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.ehcache.Cache; import net.sf.ehcache.Element; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.byd.mes.util.BeanFactory; public interface CacheManager { /** * 回调函数 */ public interface CallBack{ Serializable callBack() throws Exception; } /** * 获取缓存值 * @param cacheKey * @return Object */ public Object get(String cacheKey); /** * 记录该缓存 * @param cacheKey * @param callBack * @return Object */ public Object cache(String cacheKey,CacheManager.CallBack callBack); /** * 根据KEY清空缓存 * @param cacheKey */ public void clear(String cacheKey); /** * 清空所有缓存 */ public void clearAllCache(); /** * 根据名称清空缓存 * @param tacticName */ public void clearCacheByTacticName(String tacticName); /** * 根据名称获取缓存 * @param tacticName * @return List */ public List<Map> getCache(String tacticName); } package com.byd.mes.util.cache; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.ehcache.Cache; import net.sf.ehcache.Element; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.byd.mes.bussiness.service.system.ext.CacheTacticHandle; public class CacheManagerImpl implements CacheManager{ private static final Log log = LogFactory.getLog(CacheManagerImpl.class); private static final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private Cache cache; private CacheTacticHandle cacheTacticHandle; @Override public Object get(String cacheKey){ return getCache().get(cacheKey); } @Override public Object cache(String cacheKey,CacheManager.CallBack callBack){ String k = StringUtils.left(cacheKey, cacheKey.indexOf("@")); if(!cacheKey.startsWith("system.cacheTacic") //强制开启缓存规则本身的缓存 && !cacheTacticHandle.isEnable(k) //用户是否开启了相关的缓存规则 ){ try{ log.debug("未开启缓存规则>>> "+cacheKey); return callBack.callBack(); }catch(Exception ex){ throw new RuntimeException(ex); } } Cache cache = getCache(); Element obj = cache.get(cacheKey); Object result = null; if(obj == null){ try{ result = callBack.callBack(); }catch(Exception ex){ throw new RuntimeException(ex); } Element element = new Element(cacheKey, result); log.debug("设置缓存[cacheKey:"+cacheKey+",cacheValue:"+result+"]"); getCache().put(element); } else{ result = obj.getValue(); log.debug("数据来自缓存>>>"+result); } return result; } @Override public void clear(String cacheKey){ log.debug("Clear cache >>>"+cacheKey); boolean b = getCache().remove(cacheKey); } @Override public void clearAllCache() { getCache().removeAll(); } @Override public void clearCacheByTacticName(String tacticName) { Cache cache = getCache(); List<String> keys = cache.getKeys(); for(String key : keys){ if(key.startsWith(tacticName)){ cache.remove(key); } } } @Override public List<Map> getCache(String tacticName) { List<Map> list = new ArrayList<Map>(); Cache cache = getCache(); List<String> keys = cache.getKeys(); for(String key : keys){ if(key.startsWith(tacticName)){ Map m = new HashMap(); Element e = cache.get(key); m.put("key", key); log.debug(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>"+e.getValue()); m.put("value", e.getValue().toString()); m.put("createTime", format.format(new Date(e.getCreationTime()))); list.add(m); } } return list; } public void setCache(Cache cache) { this.cache = cache; } public Cache getCache() { return cache; } public void setCacheTacticHandle(CacheTacticHandle cacheTacticHandle) { this.cacheTacticHandle = cacheTacticHandle; } public CacheTacticHandle getCacheTacticHandle() { return cacheTacticHandle; } } package com.byd.mes.util.cache; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.byd.mes.commons.exception.NestedRuntimeException; import com.byd.mes.view.action.ActionException; public class CacheException extends NestedRuntimeException { private static final Log log = LogFactory.getLog(CacheException.class); public CacheException(String errorCode, String message) { super(errorCode, message); } public CacheException(String errorCode,String message, Throwable cause) { super(errorCode,message, cause); } public CacheException(String errorCode, Map<String,Object> args, String message, Throwable cause) { super(errorCode,args,message, cause); } }
发表评论
-
进制转换
2014-08-29 18:55 972package com.byd.core; imp ... -
Java发送Email
2011-11-07 13:57 1036package byd.core; import java. ... -
天干地支算法
2011-10-10 11:44 1164/** * <url>http://en.w ... -
MD5
2011-09-27 09:34 755public class Encryptor { ... -
java运行可以执行文件
2011-08-15 10:44 763# package com.yymt.pf.rpc.loadb ... -
随记生成验证码
2011-08-06 09:28 986package com.hrm.houfei.utils; ... -
TLD生成
2011-08-06 09:16 1027package j2ee.util; import ja ... -
页面解析
2011-08-06 09:13 868package com.atom.util; impor ... -
StringUtils 工具类
2011-08-06 09:11 1092package com.atom.util; impor ... -
重构HashTable
2011-08-06 09:03 912package com.atom.util; impor ... -
文件解析
2011-08-06 08:52 564package com.byd.portal.pagedesi ... -
工作流(workflow)
2011-08-06 08:39 1260package com.byd.mes.plugins.wor ... -
缓存处理工具类
2011-08-06 08:20 1package com.byd.mes.util.cache; ... -
Java执行javascript
2011-08-06 08:17 929package com.byd.mes.util.script ... -
文件处理工具类
2011-08-05 17:12 900/* * MyUtils.java * * */ ... -
Struts2文件上传下载
2011-08-05 16:42 1189package com.byd.action; impo ... -
对于不同数据库分页分查询析
2011-08-05 16:32 1076package zxc.utils; /** * 这 ... -
类转换
2011-08-05 16:30 841package zxc.utils; import ja ... -
数字转中文
2011-08-05 16:28 829package zxc.utils; import ja ... -
生成唯一流水码
2011-08-05 09:50 1068package com.byd.mes.util; im ...
相关推荐
本文将深入探讨Android数据缓存工具类的设计与实现,特别是针对JSON数据和字符串的缓存,并且会涉及过期时间管理,以确保数据的新鲜度。 首先,我们要理解数据缓存的基本原理。数据缓存是一种在本地存储常用数据的...
在IT行业中,图片缓存工具类是开发移动应用或网页时不可或缺的一部分,它主要用于优化用户体验,提高应用程序性能,特别是对于那些需要频繁加载和显示图片的应用。这个“图片缓存工具类”很可能是一个自定义的Java或...
Exoplayer可以通过创建CacheDataSourceFactory然后引用SimpleCache来创建实例,从而实现缓存效果。
这是缓存工具包,对C#缓存做好很好的处理,是一个不错的工具类,可以直接应用与开发
在安卓应用开发中,工具类(Utils)是程序员经常使用的辅助模块,它们提供了一系列静态方法,帮助处理常见的任务,如屏幕适配、键盘输入管理、数据缓存等。本压缩包包含了一些与这些主题相关的工具类,对于安卓...
在实际项目中,根据具体需求,还可以进一步扩展工具类的功能,例如增加异常处理、连接超时重试机制、支持Sentinel或Cluster集群模式等。总之,Redis工具类是Java开发者与Redis交互的重要桥梁,它的存在大大简化了...
Redis 缓存穿透的处理(缓存空值) Redis缓存击穿处理(互斥锁与逻辑删除方案) 封装为工具类,并适用于所有需要进行缓存穿透、击穿的方案,采用了泛型以及Lambda 函数式编程来完成编码
"图片处理工具类"就是为了解决这些问题而设计的,它集成了多种常用的图片操作功能,如图片压缩、格式转换和尺寸调整等。下面将详细阐述这些知识点。 1. **图片压缩**: 在Android中,图片压缩主要目的是减小图片的...
在这个场景下,我们讨论的是一个名为"android图片三级缓存工具类"的实现,它可以帮助我们有效地管理和加载应用中的图片。 首先,我们要理解什么是图片的三级缓存。一级缓存通常指的是内存缓存,它将图片数据存储在...
Exoplayer配套缓存工具类,需要自己处理异步。
数据缓存的一个工具类,方便攻城狮对一些基本数据类型进行数据缓存,特别还加了对集合的缓存,更加方便对app数据处理
这个"Android-一个封装DiskLruCache的缓存工具类"正是为了简化开发者使用`DiskLruCache` 的过程而设计的。 `DiskLruCache` 是基于Least Recently Used(LRU)策略的磁盘缓存,它会优先删除最近最少使用的数据,以...
本项目提供了一个Java实现的Redis缓存工具类,结合SSM框架,可以帮助开发者快速地集成和管理Redis缓存。 首先,让我们了解一下Java中的SSM框架: 1. **Spring**:这是一个全面的开源应用框架,提供了依赖注入(DI)...
6. **异常处理**:工具类的方法可能需要处理各种异常情况,合理抛出和捕获异常,以提供健壮的API。 7. **代码组织**:将相关的工具方法放在同一个类中,便于管理和查找。例如,所有与字符串处理相关的工具方法可以...
8. **异常处理**:良好的缓存工具类会考虑异常情况,如数据加载失败、缓存溢出等,通过try-catch语句或自定义异常类来处理这些问题,保证程序的健壮性。 9. **测试与性能优化**:CacheUtil可能包含了单元测试和性能...
2. **字符串处理工具类**:如`StringUtil`,提供字符串的格式化、检查空值、拼接、分割等操作,避免在代码中反复进行这些基础操作。 3. **日期时间工具类**:例如`DateUtil`,可以方便地进行日期时间的转换,如将...
在Android开发中,工具类(Util Class)是程序员经常创建的一种辅助类,它们通常包含一组静态方法,用于执行特定的任务,比如处理数据、提供便利功能等。本篇将重点讲解如何在Android中创建一个用于管理外部存储缓存...
本文将深入探讨如何使用基于`LruCache`的图片加载工具类在ListView中实现图片缓存。 首先,`LruCache`(Least Recently Used Cache)是一种常见的缓存淘汰策略,它的核心思想是:当缓存满时,优先淘汰最近最少使用...
- 使用时,调用`loadImage()`方法,工具类会自动处理缓存逻辑,无需开发者过多关注细节。 - 优化方面,可以根据设备内存情况调整内存缓存大小,考虑采用异步加载策略,避免阻塞UI线程。 - 另外,可以结合图片压缩...