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