初识EHCache缓存框架(3.x版本)

EHCache官方网站:http://www.ehcache.org/html

EHCache官方文档:http://www.ehcache.org/documentation/3.3/getting-started.htmljava

此博客采用的EHCache的版本: 3.3.1缓存

EHCache的3.x版本与2.x版本的使用方式区别仍是很大的,类的包名都改了,你说差异能不打么。网站

2.x的使用方式详见此篇博客:http://www.javashuo.com/article/p-ventbkpn-kd.htmlui

 

注意引入Jar包 , 可到官方网站中去下载,或者使用Maven依赖引入:编码

<dependency>
            <groupId>org.ehcache</groupId>
            <artifactId>ehcache</artifactId>
            <version>3.3.1</version>
        </dependency>

官网关于EHCache的解释:spa

1.经过编码的方式使用EHCache

package at.flying.test;

import org.ehcache.Cache;
import org.ehcache.CacheManager;
import org.ehcache.config.builders.CacheConfigurationBuilder;
import org.ehcache.config.builders.CacheManagerBuilder;
import org.ehcache.config.builders.ResourcePoolsBuilder;

public class EHCacheTest {

    public static void main(String[] args) {
          //获取到管理cache的CacheManager,
        // 而且初识化了一个名为preConfigured的cache,
        // 该cache里存储的entity的key类型为Long , value类型为String,
        //该cache最多只能缓存100个entity
        CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
                .withCache("preConfigured",
                        CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class,
                                ResourcePoolsBuilder.heap(100))
                                .build())
                .build(true);
        //经过CacheManager获取到名为preConfigured的cache
        Cache<Long, String> preConfigured
                = cacheManager.getCache("preConfigured", Long.class, String.class);
        //经过CacheManager根据特定配置再建立一个cache,名为myCache,该cache由cacheManager这个实例管理
        Cache<Long, String> myCache = cacheManager.createCache("myCache",
                CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class,
                        ResourcePoolsBuilder.heap(100)).build());
        //放入一个entity到myCache里,相似于Map的存储方式
        myCache.put(1L, "da one!");
        //从名为myCache的cache里获取key为1的value值
        String value = myCache.get(1L);
        //打印获取到的值
        System.out.println(value);
        //关闭CacheManager,这个方法会自动关闭该CacheManager管理的全部cache及service
        cacheManager.close();


    }
}

2.经过xml配置文件使用EHCache

<?xml version="1.0" encoding="UTF-8"?>
<config
    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
    xmlns='http://www.ehcache.org/v3'
    xsi:schemaLocation="http://www.ehcache.org/v3 http://www.ehcache.org/schema/ehcache-core.xsd">

  <cache alias="foo"> 
    <key-type>java.lang.String</key-type> 
    <value-type>java.lang.String</value-type> 
    <resources>
      <heap unit="entries">2000</heap> 
      <offheap unit="MB">500</offheap> 
    </resources>
  </cache>

  <cache-template name="myDefaults"> 
    <key-type>java.lang.Long</key-type>
    <value-type>java.lang.String</value-type>
    <heap unit="entries">200</heap>
  </cache-template>

  <cache alias="bar" uses-template="myDefaults"> 
    <key-type>java.lang.Number</key-type>
  </cache>

  <cache alias="simpleCache" uses-template="myDefaults" /> 

</config>

官方文档给出的解释以下:.net

而后再经过Java代码读取配置文件使用EHCachecode

URL myUrl = getClass().getResource("/my-config.xml"); 
Configuration xmlConfig = new XmlConfiguration(myUrl); 
CacheManager myCacheManager = CacheManagerBuilder.newCacheManager(xmlConfig);

官方文档给出的解释以下:xml

关于更多详细的信息参见官方文档:http://www.ehcache.org/documentation/3.3/xml.html

3.EHCache与Spring的整合使用

注:Spring4.3.8版本及其以上才支持EHCache3.x版本。

待写...

相关文章
相关标签/搜索