博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 缓存ehcache的使用(使用方式一)
阅读量:5111 次
发布时间:2019-06-13

本文共 2533 字,大约阅读时间需要 8 分钟。

实体要序列化

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语句说明直接从缓存中取的数据

转载于:https://www.cnblogs.com/austinspark-jessylu/p/6229334.html

你可能感兴趣的文章
设计模式之装饰者模式
查看>>
一道不知道哪里来的容斥题
查看>>
Blender Python UV 学习
查看>>
window添加右键菜单
查看>>
入手腾龙SP AF90mm MACRO
查看>>
Window7上搭建symfony开发环境(PEAR)
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
一些方便系统诊断的bash函数
查看>>
jquery中ajax返回值无法传递到上层函数
查看>>
css3之transform-origin
查看>>
[转]JavaScript快速检测浏览器对CSS3特性的支持
查看>>
Master选举原理
查看>>
[ JAVA编程 ] double类型计算精度丢失问题及解决方法
查看>>
小别离
查看>>
微信小程序-发起 HTTPS 请求
查看>>
WPF动画设置1(转)
查看>>
基于node/mongo的App Docker化测试环境搭建
查看>>
秒杀9种排序算法(JavaScript版)
查看>>