疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

spring配置ehcache


 

 
1.引入需要的jar
 
  2.配置ehcache,ehcache.xml内容如下:
 
  [html]
 
  <ehcache xmlns:xsi="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>
 
  3.配置spring管理ehcache:
 
  [html]
 
  <beans xmlns=".springframework.org/schema/beans"
 
  xmlns:xsi=".w3.org/2001/XMLSchema-instance" 
 
xmlns:p=".springframework.org/schema/p"
 
  xmlns:cache=".springframework.org/schema/cache"
 
  xsi:schemaLocation="
 
  .springframework.org/schema/beans .springframework.org/schema/beans/spring-beans-
 
3.1.xsd
 
  .springframework.org/schema/cache .springframework.org/schema/cache/spring-cache-
 
3.1.xsd">
 
  <!-- 启用缓存注解功能,这个是必须的,否则注解不会生效,另外,该注解一定要声明在
 
spring主配置文件中才会生效 -->
 
  <cache:annotation-driven cache-manager="cacheManager" />
 
  <!-- cacheManager工厂类,指定ehcache.xml的位置 -->
 
  <bean id="cacheManagerFactory"
 
  class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
 
  p:configLocation="classpath:ehcache.xml" />
 
  <!-- 声明cacheManager -->
 
  <bean id="cacheManager" 
 
class="org.springframework.cache.ehcache.EhCacheCacheManager"
 
  p:cacheManager-ref="cacheManagerFactory" />
 
  </beans>
 
  4.编写测试代码:
 
  [java]
 
  public class EhcacheSpringTest {
 
  private CacheManager cacheManager;
 
  private Cache cache;
 
  @Before
 
  public void init() {
 
  ApplicationContext ctx = new ClassPathXmlApplicationContext(
 
  "applicationContext.xml");
 
  EhCacheCacheManager ehCacheManager = (EhCacheCacheManager) ctx
 
  .getBean("cacheManager");
 
  cacheManager = ehCacheManager.getCacheManager();
 
  cache = cacheManager.getCache("userCache");
 
  }
 
  @After
 
  public void destory() {
 
  cacheManager.shutdown();
 
  }
 
  @Test
 
  public 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);
 
  }
 
  @Test
 
  public 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);
 
  }
 
  }