W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
與 Spring 和 Grails 一樣,Micronaut 在 io.micronaut.cache 包中提供了緩存注解。
CacheManager 接口允許根據(jù)需要插入不同的緩存實(shí)現(xiàn)。
SyncCache 接口提供用于緩存的同步 API,而 AsyncCache API 允許非阻塞操作。
緩存注解
支持以下緩存注釋:
使用這些注釋之一會(huì)激活 CacheInterceptor,在 @Cacheable 的情況下,它會(huì)緩存方法的返回值。
如果方法返回類型是非阻塞類型(CompletableFuture 或 Publisher 的實(shí)例),則會(huì)緩存發(fā)出的結(jié)果。
此外,如果底層 Cache 實(shí)現(xiàn)支持非阻塞緩存操作,則讀取緩存值時(shí)不會(huì)阻塞,從而導(dǎo)致非阻塞緩存操作。
配置緩存
默認(rèn)情況下,Caffeine 用于從應(yīng)用程序配置創(chuàng)建緩存。例如:
緩存配置示例
Properties | Yaml | Toml | Groovy | Hocon | JSON |
|
|
|
|
|
|
上面的示例配置了一個(gè)名為“my-cache”的緩存,最大大小為 20。
命名緩存
在 micronaut.caches 下以 kebab 大小寫定義緩存名稱(小寫和連字符分隔);如果您使用駝峰式大小寫,名稱將標(biāo)準(zhǔn)化為烤肉串大小寫。例如 myCache 變成 my-cache。在 @Cacheable 注釋中引用緩存時(shí),必須使用 kebab-case 形式。
要將稱重器配置為與 maximumWeight 配置一起使用,請(qǐng)創(chuàng)建一個(gè)實(shí)現(xiàn) io.micronaut.caffeine.cache.Weigher 的 bean。要將給定的稱重器僅與特定緩存相關(guān)聯(lián),請(qǐng)使用 @Named(<cache name>) 注釋 bean。沒有命名限定符的稱重器適用于所有沒有命名稱重器的緩存。如果沒有找到 bean,則使用默認(rèn)實(shí)現(xiàn)。
動(dòng)態(tài)緩存創(chuàng)建
可以為無法提前配置緩存的用例注冊(cè) DynamicCacheManager bean。當(dāng)嘗試檢索未預(yù)定義的緩存時(shí),將調(diào)用動(dòng)態(tài)緩存管理器來創(chuàng)建并返回緩存。
默認(rèn)情況下,如果應(yīng)用程序中沒有定義其他動(dòng)態(tài)緩存管理器,Micronaut 會(huì)注冊(cè)一個(gè) DefaultDynamicCacheManager 實(shí)例,該實(shí)例使用默認(rèn)值創(chuàng)建 Caffeine 緩存。
其他緩存實(shí)現(xiàn)
查看 Micronaut 緩存項(xiàng)目以獲取更多信息。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: