<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">
<!-- 声明一个名称为foo的缓存配置 -->
<cache alias="foo">
<!-- 设置缓存对象中key、value 的类型为String,如果没有指定则默认为java.lang.Object -->
<key-type>java.lang.String</key-type>
<value-type>java.lang.String</value-type>
<resources>
<!--设置该缓存在堆上可持有2000个实体(键值对) -->
<heap unit="entries">2000</heap>
<!--最大可持有500MB的堆外内存 -->
<offheap unit="MB">500</offheap>
</resources>
</cache>
<!-- 声明一个配置模版 -->
<cache-template name="myDefaults">
<!-- 设置键、值分别为Long和String类型-->
<key-type>java.lang.Long</key-type>
<value-type>java.lang.String</value-type>
<!-- 在堆上可持有200个实体-->
<heap unit="entries">200</heap>
</cache-template>
<!-- 声明一个名称为"bar"的缓存配置,并引用myDefaults配置模版中的配置信息配置进行配置,但键的类型使用此处设置的Number类型-->
<cache alias="bar" uses-template="myDefaults">
<key-type>java.lang.Number</key-type>
</cache>
<!-- 直接使用myDefaults模版配置中配置信息配置名称为simpleCache缓存-->
<cache alias="simpleCache" uses-template="myDefaults"></cache>
</config>
import org.ehcache.Cache;
import org.ehcache.CacheManager;
import org.ehcache.config.Configuration;
import org.ehcache.config.builders.CacheConfigurationBuilder;
import org.ehcache.config.builders.CacheManagerBuilder;
import org.ehcache.config.builders.ResourcePoolsBuilder;
import org.ehcache.xml.XmlConfiguration;
import java.net.URL;
public class GettingStartedEhcacheForXml {
public static void main(String[] args){
URL myUrl = GettingStartedEhcacheForXml.class.getResource("/ehcache.xml");
Configuration configuration = new XmlConfiguration(myUrl);
CacheManager cacheManager = CacheManagerBuilder.newCacheManager(configuration);
/**
* CacheManager实例只有经过初始化后才能执行获取缓存对象、创建缓存对象
*/
cacheManager.init();
/**
* 获取XML文件中配置的名称为simpleCache的缓存
*/
Cache simpleCache = cacheManager.getCache("simpleCache", Long.class, String.class);
simpleCache.put(2L,"simpleCache");
System.out.println(simpleCache.get(2L));
Cache<Long, String> myCache = cacheManager.createCache("myCache",
CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class, ResourcePoolsBuilder.heap(10)));
myCache.put(1L, "da one");
String value = myCache.get(1L);
System.out.println(value);
cacheManager.removeCache("myCache");
cacheManager.close();
}
}
输出结果:
simpleCache
da one