关于Ehcache在开发环境限制下的配置初始化问题

本文介绍了在开发环境中遇到Ehcache无法由Spring初始化的问题,作者选择了手动配置Ehcache进行初始化。详细步骤包括创建静态实例、存值方法(使用内置锁保证并发安全性)和取值方法。作者认为Ehcache作为轻量级缓存是不错的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于Ehcache在开发环境限制下的配置初始化问题

由于开发环境影响,Ehcache无法由spring初始化并管理[Help 1]


前几天因项目需要需要集成一个轻量级的缓存框架,最后选择了Ehcache。在spring文件配置好后,启动项目。居然报NotFoundClassException错误,在确定jar已经导入的情况下,依然报这个错,折腾了几天后决定放弃在spring中初始化Ehcache,自己手动配置初始化。

第一步 创建静态实例

private EhcacheUtil(String path) {
url = getClass().getResource(path);
manager = CacheManager.create(url);
}
public static EhcacheUtil getInstance() {
if (ehCache== null) {
ehCache= new EhcacheUtil(PATH);
}
return ehCache;
}
获取实例

第二步 存值方法

/**
* 存值
* @param cacheName
* @param key
* @param value
*/
public void put(String cacheName, String key, Object value) {
Cache cache = manager.getCache(cacheName);
cache.acquireWriteLockOnKey(key);
try {
Element element = new Element(key, value);
cache.put(element);
}catch (Exception e) {
e.printStackTrace();
LOG.info(“添加缓存失败, key=”+key+“value=”+value);
} finally {
cache.releaseWriteLockOnKey(key);
}
}
这里有一个acquireWriteLockOnKey(key)方法用于控制重复写,这是ehcache自带的一个锁,经本人测试,加了锁后写的顺序在并发下不会乱。最后一定要releaseWriteLockOnKey(key)释放锁。这是Ehcache自带的。

第三步 取值方法

/**
* 取值
* @param cacheName
* @param key
* @return
*/
public Object get(String cacheName, String key) {
Cache cache = manager.getCache(cacheName);
Element element = cache.get(key);
return element == null ? null : element.getObjectValue();
}
取值就无所谓了,只要在数据库数据变了的时候刷新下缓存就ok了
轻量级的缓存感觉Ehcache还是很不错的选择,赞!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值