ehcache缓存的使用

目录

ehcache是什么

EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。
Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点。

ehcache简单使用


1:使用缓存,肯定先要导入缓存使用的包,这里用maven的方式导包
	
		
			net.sf.ehcache
			ehcache
			2.7.4
		
	

2:使用缓存需要一个配置组的配置文件,这边我把loginUser当成一个组,还有一个testStudent对象当成一个组,这个ehcache.xml文件的内容如下:


  
    
    
   


3:写一个缓存管理类CacheCenter.java类,这个用来作为一个工具类使用,当要存入数据的时候直接cache.put(key,value,group),当要取出缓存中的数据的时候直接cache.read(key,group)即可。废话不说,下面是这个类的实现。

package com.mavenspring.demo.helper;
/**
 * 缓存帮助类
 */

import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;

import org.springframework.stereotype.Component;

@Component
public class CacheCenter {

//	private CacheManager cacheManager = CacheManager.create("/usr/local/tomcat/money-new-tomcat/webapps/bank-progress/WEB-INF/classes/com/kingdee/common/ehcache.xml");
	private CacheManager cacheManager = CacheManager.create(this.getClass().getResource("ehcache.xml"));

	public void put(String key, Object value, String group) {
		Element element = new Element(key, value);
		Cache cache = cacheManager.getCache(group);
		cache.put(element);
	}

	public Object read(String key, String group) {
		Cache cache = cacheManager.getCache(group);
		System.out.println(cache);
		Element element = cache.get(key);
		return null == element ? null : element.getObjectValue();
	}

	public boolean remove(String key, String group) {
		Cache cache = cacheManager.getCache(group);
		return cache.remove(key);
	}

	public CacheManager getCacheManager() {
		return cacheManager;
	}

	public Cache read(String group) {
		return cacheManager.getCache(group);
	}

}

4:接下去就是调用的controller或者其他地方进行调用。下面是我在controller中的调用

@Controller
public class LoginController  {
    
    //这个地方一定要用springmvc注解的方式加载这个类,如果没有使用springmvc就直接new一个对象。
    //找不到的时候到springmvc-servlet.xml的配置文件中加一个扫描固件的配置。
    @Autowired
    private CacheCenter cache;

    @RequestMapping(value="/login")
    public String login(HttpServletRequest request,@RequestBody() LoginUser loginUser){
	
cache.put("loginUserUserName", userName, "loginUser");
		cache.put("loginUserPassword", loginUser.password, "loginUser");							
		TestStudent testStudent = new TestStudent("张三","213");
		cache.put("testStudent", testStudent, "testStudent");
		TestStudent test = (TestStudent) cache.read("testStudent", "testStudent");//read出来是一个object类型
		return "login";

    }

}

注:这边你自己要创建所必须的实体类才能执行程序,导入必要的包,希望能够帮助到你们!

你可能感兴趣的:(缓存ehcache的使用)