、通过使用API来动态的添加缓存(将缓存的配置信息通过java代码来实现而非写在配置文件)
2、通过配置文件ehcache.xml创建缓存实例
packageorg.jeecgframework.cache; importorg.jeecgframework.core.util.StringExt; public classCacheInstance { private static ICache cache = newEHCache(); /*** 加入缓存 * */ public static booleansetObject(String key, Object value) { if(StringExt.isBlank(key)) { return false; } if(null ==value){ cache.removeObject(key); return true; } returncache.setObject(key, value); } /*** 从缓存获取数据 * */ public staticObject getObject(String key) { if(StringExt.isBlank(key)) { return null; } returncache.getObject(key); } /*** 删除缓存数据 * */ public static booleanremoveObject(String key) { if(StringExt.isBlank(key)) { return false; } returncache.removeObject(key); } }
packageorg.jeecgframework.cache; // 主要方法封装 importorg.ehcache.Cache; importorg.ehcache.CacheManager; importorg.ehcache.config.builders.CacheConfigurationBuilder; importorg.ehcache.config.builders.CacheManagerBuilder; importorg.ehcache.config.builders.ResourcePoolsBuilder; import java.util.*; public class EHCache implementsICache { private static Cache<String, Object>objectCache; private Cache<String, Object>getObjectCache() { if (null ==objectCache) { CacheManager cacheManager =CacheManagerBuilder .newCacheManagerBuilder() .withCache( "obj", CacheConfigurationBuilder.newCacheConfigurationBuilder( String.class, Object.class, ResourcePoolsBuilder.heap(200)).build()) .build(true); objectCache = cacheManager.getCache("obj", String.class, Object.class); } returnobjectCache; } public booleansetObject(String key, Object value) { getObjectCache().put(key, value); return true; } publicObject getObject(String key) { returngetObjectCache().get(key); } public booleanremoveObject(String key) { getObjectCache().remove(key); return true; } }