Maven依赖
<!--Spring Core 本身就是Spring项目就不需要这个依赖了-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.0.7.RELEASE</version>
</dependency>
<!--缓存ehcache依赖-->
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>2.10.5</version>
</dependency>
<!-- lombok依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.22</version>
</dependency>
EhcacheUtils 工具类
import lombok.extern.slf4j.Slf4j;
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
import org.springframework.util.ClassUtils;
/**
* Ehcache 缓存操作工具类
*/
@Slf4j
public class EhcacheUtils {
// ehcache的配置文件,注意你的项目的配置文件可能和这里的不一样
private static final String PATH = ClassUtils.getDefaultClassLoader().getResource("").getPath()+"ehcache/ehcache.xml";
private CacheManager manager;
private static EhcacheUtils ehCache;
/**
* 获得缓存配置管理
* @param path
*/
private EhcacheUtils(String path) {
try {
manager = CacheManager.create(path);
} catch (Exception e) {
e.printStackTrace();
log.error("获取配置文件错误:{}",e.getMessage());
}
}
/**
* 初始化缓存管理类
* @return
*/
public static EhcacheUtils getInstance() {
try {
if (ehCache == null) {
ehCache = new EhcacheUtils(PATH);
}
} catch (Exception e) {
e.printStackTrace();
log.error("初始化错误:{}",e.getMessage());
}
return ehCache;
}
/**
* 获取Cache类
* @param cacheName
* @return
*/
public Cache getCache(String cacheName) {
return manager.getCache(cacheName);
}
/**
* 添加缓存数据
* @param cacheName
* @param key
* @param value
*/
public void put(String cacheName, String key, Object value) {
try {
Cache cache = manager.getCache(cacheName);
Element element = new Element(key, value);
cache.put(element);
} catch (Exception e) {
e.printStackTrace();
log.error("添加缓存失败:{}",e.getMessage());
}
}
/**
* 获取缓存数据
* @param cacheName
* @param key
* @return
*/
public Object get(String cacheName, String key) {
try {
Cache cache = manager.getCache(cacheName);
Element element = cache.get(key);
return element == null ? null : element.getObjectValue();
} catch (Exception e) {
e.printStackTrace();
log.error("获取缓存数据失败:{}",e.getMessage());
return null;
}
}
/**
* 删除缓存数据
* @param cacheName
* @param key
*/
public void delete(String cacheName, String key) {
try {
Cache cache = manager.getCache(cacheName);
cache.remove(key);
} catch (Exception e) {
e.printStackTrace();
log.error("删除缓存数据失败:{}",e.getMessage());
}
}
}