java 缓存ehcache的使用(使用方式一)
实体要序列化
resource文件夹下建立 ehcache.xml
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<diskStore path="java.io.tempdir" />
<defaultCache maxElementsInMemory="1000" eternal="false"
timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" />
<cache name="ehcacheGO" maxElementsInMemory="10000"
eternal="false" timeToIdleSeconds="300000" timeToLiveSeconds="600000"
overflowToDisk="true" />
</ehcache>
建立ehcache的工具类
package com.cjt.utils;
import java.net.URL;
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
public class EhcacheUtil {
private static final String path = "/ehcache.xml";
private URL url;
private CacheManager manager;
private static EhcacheUtil 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;
}
public void put(String cacheName, String key, Object value) {
Cache cache = manager.getCache(cacheName);
Element element = new Element(key, value);
cache.put(element);
}
public Object get(String cacheName, String key) {
Cache cache = manager.getCache(cacheName);
Element element = cache.get(key);
return element == null ? null : element.getObjectValue();
}
public Cache get(String cacheName) {
return manager.getCache(cacheName);
}
public void remove(String cacheName, String key) {
Cache cache = manager.getCache(cacheName);
cache.remove(key);
}
}
===================================================
使用ehcache
@RequestMapping("/showUser")
public String toIndex(HttpServletRequest request, Model model) {
System.out.println("UserController showUser");
int id = Integer.parseInt(request.getParameter("id"));
User user = userService.getUserById(id);
//将查询到的结果放入缓存
EhcacheUtil.getInstance().put("ehcacheGO", "userEch", user);
model.addAttribute("user", user);
return "showUser";
}
@RequestMapping("/getUser")
public String toEhcahe(HttpServletRequest request, Model model) {
System.out.println("use cacher");
//从缓存中取数据
User user=(User)EhcacheUtil.getInstance().get("ehcacheGO", "userEch");
model.addAttribute("userCache", EhcacheUtil.getInstance().get("ehcacheGO", "userEch"));
model.addAttribute("user", user);
return "showUser";
}
上面showUser时发送了sql语句,下面getUser时没有发送sql语句说明直接从缓存中取的数据
相关文章
- Java Integer类的缓存
- Java语言中的多态性
- Thinkphp3.2下导入所需的类库 同java的Import 本函数有缓存功能
- Java实现 蓝桥杯 算法训练 Lift and Throw
- Java实现 LeetCode 725 分隔链表(暴力)
- Java实现 LeetCode 528 按权重随机选择(TreeMap)
- Java实现 LeetCode 146 LRU缓存机制
- Java实现 LeetCode 146 LRU缓存机制
- Java实现硬币收集问题
- Java实现 蓝桥杯VIP 基础练习 报时助手
- 深入解析Java AtomicInteger原子类型
- JAVA中DNS缓存设置(转)
- Java Demo示例:springboot下使用ehcache/JSR实现缓存机制
- Atitit. Async await 优缺点 异步编程的原理and实现 java c# php
- Atitit.sql ast 表达式 语法树 语法 解析原理与实现 java php c#.net js python
- Spire.XLS for Java 12.11.8 Excel to PDF bug Fix
- Error:Execution failed for task ‘:app:transformNative_libsWithStripDebugSymbolForDebug‘.> java.io.IO
- java求1至19这些自然数数中,所有相加为20的组合
- linux 服务器内存清理内存缓存 详细说明 java jvm
- Java中的抽象类和抽象方法是什么?概述到解析层层深入了解
- Java设计模式菜鸟系列(十五)建造者模式建模与实现
- JAVA中写时复制(Copy-On-Write)Map实现
- 《Java虚拟机原理图解》1.4 class文件里的字段表集合--field字段在class文件里是如何组织的
- java-mybaits-00602-查询缓存-mybatis整合ehcache
- Java-小技巧-005-double类型保留两位小数4种方法
- java-mybaits-00601-查询缓存-一级缓存、二级缓存
- JAVA 并发编程-读写锁之模拟缓存系统(十一)
- Java 自定义注解结合 Aop 切面和本地缓存实现接口防重复请求提交
- Java基础(3)-计算机基础