創(chuàng)建
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返回一個(gè)新CacheManagerBuilder實(shí)例信轿。
使用構(gòu)建器定義Cache別名為“ preConfigured”的钾挟。cacheManager.build()在實(shí)際CacheManager實(shí)例上調(diào)用時(shí)將創(chuàng)建此緩存广凸。第一個(gè)String參數(shù)是緩存別名碗脊,用于從中檢索緩存CacheManager窝爪。第二個(gè)參數(shù)CacheConfiguration用于配置Cache塘匣。我們使用CacheConfigurationBuilder()方法調(diào)用newCacheConfigurationBuilder以創(chuàng)建默認(rèn)配置。
最后取劫,調(diào)用build()返回一個(gè)完全實(shí)例化但未初始化的匆笤,CacheManager我們可以使用。
- 在使用CacheManager它之前谱邪,需要對其進(jìn)行初始化炮捧,這可以通過2種方式之一進(jìn)行初始化:調(diào)用實(shí)例,或者在build()參數(shù)設(shè)置為true, CacheManager.init()調(diào)用CacheManagerBuilder.build(boolean init)方法惦银。
通過將其別名咆课,鍵類型和值類型傳遞給來檢索緩存CacheManager灌砖。例如,為了獲得在步驟2中傀蚌,你需要它的聲明的緩存alias="preConfigured"基显,keyType=Long.class和valueType=String.class。為了確保類型安全善炫,我們要求傳遞鍵和值類型撩幽。如果它們與我們期望的不同,則在應(yīng)用程序生命周期CacheManager的ClassCastException早期拋出該異常箩艺。這可以Cache防止受到隨機(jī)類型的污染窜醉。
- 該CacheManager可用于創(chuàng)建新的Cache按需實(shí)例。就像在步驟2中一樣艺谆,它需要傳入別名和CacheConfiguration榨惰。實(shí)例化和完全初始化的Cache添加將通過CacheManager.getCacheAPI 返回和/或訪問。
Cache現(xiàn)在可以將新添加的內(nèi)容用于存儲(chǔ)由鍵值對組成的條目静汤。put方法的第一個(gè)參數(shù)是鍵琅催,第二個(gè)參數(shù)是值。請記住虫给,鍵和值類型必須與中定義的類型相同CacheConfiguration藤抡。此外,密鑰必須唯一抹估,并且僅與一個(gè)值相關(guān)聯(lián)缠黍。
通過調(diào)用cache.get(key)方法從緩存中檢索值。它僅采用一個(gè)參數(shù)作為鍵药蜻,并返回與該鍵關(guān)聯(lián)的值瓷式。如果沒有與該鍵關(guān)聯(lián)的值,則返回null语泽。
我們可以CacheManager.removeCache(String)給定Cache贸典。該CacheManager會(huì)不僅刪除其參考 Cache,但也將其關(guān)閉湿弦。將Cache釋放所有本地保存的瞬態(tài)資源(如內(nèi)存)瓤漏。對此的引用Cache變得不可用腾夯。
為了釋放所有的臨時(shí)資源(內(nèi)存颊埃,線程,...)一個(gè)CacheManager提供給Cache它管理的情況下蝶俱,你必須調(diào)用CacheManager.close()班利,這反過來關(guān)閉所有Cache當(dāng)時(shí)已知的情況。
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者