读书人

spring 3.2.4配备注解ehcache

发布时间: 2013-09-05 16:02:07 作者: rapoo

spring 3.2.4配置注解ehcache
配置ehcache,ehcache.xml内容如下:

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="ehcache.xsd"><defaultCache maxElementsInMemory="10000" eternal="false"timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="false"diskSpoolBufferSizeMB="30" maxElementsOnDisk="10000000"diskPersistent="false" diskExpiryThreadIntervalSeconds="120"memoryStoreEvictionPolicy="LRU" /><cache name="userCache" maxElementsInMemory="1000" eternal="false"timeToIdleSeconds="100000" timeToLiveSeconds="100000" overflowToDisk="false" /></ehcache>


配置spring管理ehcache:
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:cache="http://www.springframework.org/schema/cache"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.1.xsd"><!--启用缓存注解功能,这个是必须的,否则注解不会生效,另外,该注解一定要声明在spring主配置文件中才会生效--><cache:annotation-driven cache-manager="cacheManager" /><!-- cacheManager工厂类,指定ehcache.xml的位置 --><bean id="cacheManagerFactory"/><!-- 声明cacheManager --><bean id="cacheManager" /></beans>


public class EhcacheSpringTest {private CacheManager cacheManager;private Cache cache;@Beforepublic void init() {ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");EhCacheCacheManager ehCacheManager = (EhCacheCacheManager) ctx.getBean("cacheManager");cacheManager = ehCacheManager.getCacheManager();cache = cacheManager.getCache("userCache");}@Afterpublic void destory() {cacheManager.shutdown();}@Testpublic void testEhcacheString() {String key = "hello";String value = "world";cache.put(new Element(key, value));Element element = cache.get(key);Object obj = element.getObjectValue();Assert.assertEquals(value, obj);System.out.println(obj);}@Testpublic void testEhcacheObj() {String key = "user";User value = new User("zhangsan", "lisi");cache.put(new Element(key, value));Element element = cache.get(key);Object obj = element.getObjectValue();Assert.assertEquals(value, obj);System.out.println(obj);Object objSer = element.getValue();Assert.assertEquals(value, objSer);System.out.println(objSer);}}


重点在上面配置里的那句,【缓存配置一定要声明在spring主配置文件中才会生效】搞了我一晚上。
现在只是写来总结一下。

读书人网 >软件架构设计

热点推荐