创建
CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
.withCache("preConfigured",
CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class, ResourcePoolsBuilder.heap(10)))
.build();
cacheManager.init();
Cache<Long, String> preConfigured =
cacheManager.getCache("preConfigured", Long.class, String.class);
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);
cacheManager.removeCache("preConfigured");
cacheManager.close();
- newCacheManagerBuilder返回一个新CacheManagerBuilder实例。
使用构建器定义Cache别名为“ preConfigured”的。cacheManager.build()在实际CacheManager实例上调用时将创建此缓存。第一个String参数是缓存别名,用于从中检索缓存CacheManager。第二个参数CacheConfiguration用于配置Cache。我们使用CacheConfigurationBuilder()方法调用newCacheConfigurationBuilder以创建默认配置。
最后,调用build()返回一个完全实例化但未初始化的,CacheManager我们可以使用。
- 在使用CacheManager它之前,需要对其进行初始化,这可以通过2种方式之一进行初始化:调用实例,或者在build()参数设置为true, CacheManager.init()调用CacheManagerBuilder.build(boolean init)方法。
通过将其别名,键类型和值类型传递给来检索缓存CacheManager。例如,为了获得在步骤2中,你需要它的声明的缓存alias="preConfigured",keyType=Long.class和valueType=String.class。为了确保类型安全,我们要求传递键和值类型。如果它们与我们期望的不同,则在应用程序生命周期CacheManager的ClassCastException早期抛出该异常。这可以Cache防止受到随机类型的污染。
- 该CacheManager可用于创建新的Cache按需实例。就像在步骤2中一样,它需要传入别名和CacheConfiguration。实例化和完全初始化的Cache添加将通过CacheManager.getCacheAPI 返回和/或访问。
Cache现在可以将新添加的内容用于存储由键值对组成的条目。put方法的第一个参数是键,第二个参数是值。请记住,键和值类型必须与中定义的类型相同CacheConfiguration。此外,密钥必须唯一,并且仅与一个值相关联。
通过调用cache.get(key)方法从缓存中检索值。它仅采用一个参数作为键,并返回与该键关联的值。如果没有与该键关联的值,则返回null。
我们可以CacheManager.removeCache(String)给定Cache。该CacheManager会不仅删除其参考 Cache,但也将其关闭。将Cache释放所有本地保存的瞬态资源(如内存)。对此的引用Cache变得不可用。
为了释放所有的临时资源(内存,线程,...)一个CacheManager提供给Cache它管理的情况下,你必须调用CacheManager.close(),这反过来关闭所有Cache当时已知的情况。