- 首先是项目整合ehcache,详情请看博主另一篇文章。->传送门!
- 直接上源码。
package com.shengxi.resys.util; import javax.annotation.Resource; import org.springframework.cache.Cache; import org.springframework.cache.CacheManager; /** * @author yan * @version 1.0.0 * @date 2020-08-11 13:38:56 * @description 缓存工具类 */ public class CacheUtil { private static CacheManager cacheManager; private static final String DEFAULT_CACHE_NAME = "resys"; /** * 获取缓存 */ public static Cache getDefaultCache() { return getCache(DEFAULT_CACHE_NAME); } /** * 获取缓存 */ private static Cache getCache(String cacheName) { return cacheManager.getCache(cacheName); } /** * 获取值 * * @param id * @return */ public static Cache.ValueWrapper get(String id) { return getCache(DEFAULT_CACHE_NAME).get(id); } /** * 获取值,并反序列化 */ public static Object getValue(String id) { return getDefaultCache().get(id).get(); } /** * 存放一个数据 * * @param key key * @param value value */ public static void put(Object key, Object value) { getDefaultCache().put(key, value); } /** * 存在时不添加 * @param key key * @param value value */ public static void putIfAbsent(Object key, Object value) { getDefaultCache().putIfAbsent(key, value); } /** * 更新操作 * @param key key * @param value value */ public static void update(Object key, Object value){ put(key, value); } public static void updateCrr(Object key, Object value){ synchronized (key){ remove(key); put(key, value); } } /** * 移除对应key的数据 * * @param key key */ public static void remove(Object key) { getDefaultCache().evict(key); } @Resource public static void setCacheManager(CacheManager cacheManager) { CacheUtil.cacheManager = cacheManager; } }
代码只是为了开发,还没有深入研究ehcache的具体实现,所有没有进行很好的优化。如果各位看见有什么优化的想法,可以留言给本人,本人讲认真思考,共同进步!
springboot项目自定义ehcache工具类
最新推荐文章于 2024-05-24 18:56:48 发布