初識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版本。

待寫...

相關文章
相關標籤/搜索