EHCache官方网站:http://www.ehcache.org/
EHCache官方文档:http://www.ehcache.org/documentation/3.3/getting-started.html
此博客采用的EHCache的版本: 3.3.1
EHCache的3.x版本与2.x版本的使用方式区别还是很大的,类的包名都改了,你说差别能不打么。
2.x的使用方式详见此篇博客:https://my.oschina.net/u/2608182/blog/890916
注意引入Jar包 , 可到官方网站中去下载,或者使用Maven依赖引入:
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>3.3.1</version>
</dependency>
官网关于EHCache的解释:
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>
官方文档给出的解释如下:
然后再通过Java代码读取配置文件使用EHCache
URL myUrl = getClass().getResource("/my-config.xml");
Configuration xmlConfig = new XmlConfiguration(myUrl);
CacheManager myCacheManager = CacheManagerBuilder.newCacheManager(xmlConfig);
官方文档给出的解释如下:
关于更多详细的信息参见官方文档:http://www.ehcache.org/documentation/3.3/xml.html
3.EHCache与Spring的整合使用
注:Spring4.3.8版本及其以上才支持EHCache3.x版本。
待写...