Spring緩存抽象

一、基本概念

CacheManager:緩存管理器
Cache:緩存的實現
@Cacheable:緩存註解,通常標註在service層方法上,在方法執行前調用,查詢緩存是否存在,不存在執行方法,並將返回結果保存在指定的緩存
@CachePut:緩存更新註解,在方法執行結束後調用,將返回結果更新到緩存
@CacheEvict:緩存刪除註解,默認在方法執行後調用,刪除指定緩存
@Caching:用於同時添加多個緩存註解,定義複雜的緩存註解
@CacheConfig:在類上添加,給類中的全部緩存註解方法添加緩存的公共配置spring

一、自動配置類:CacheAutoConfiguration

二、緩存配置類

  • org.springframework.boot.autoconfigure.cache.GenericCacheConfiguration
  • org.springframework.boot.autoconfigure.cache.JCacheCacheConfiguration
  • org.springframework.boot.autoconfigure.cache.EhCacheCacheConfiguration
  • org.springframework.boot.autoconfigure.cache.HazelcastCacheConfiguration
  • org.springframework.boot.autoconfigure.cache.InfinispanCacheConfiguration
  • org.springframework.boot.autoconfigure.cache.CouchbaseCacheConfiguration
  • org.springframework.boot.autoconfigure.cache.RedisCacheConfiguration
  • org.springframework.boot.autoconfigure.cache.CaffeineCacheConfiguration
  • org.springframework.boot.autoconfigure.cache.SimpleCacheConfiguration
  • org.springframework.boot.autoconfigure.cache.NoOpCacheConfiguration

三、默認採用的配置類

image.png

四、SimpleCacheConfiguration

給容器中注入了一個CacheManager:ConcurrentMapCacheManager緩存

二、簡單使用

一、在啓動類上增長註解:@EnableCaching

二、在對應方法上標註註解

註解常見屬性less

  • @Cacheable
cacheNames/value:指定緩存名字
key:指定緩存數據使用的key(SPEL指定),不指定時默認爲方法實參
keyGenerator:指定key生成器組件id
cacheManager:指定緩存管理器
cacheResolver:
condition:條件知足才緩存
unless:條件知足不緩存
sync:是否使用異步模式,使用異步模式時不支持unless,默認爲false
  • @CachePut
cacheNames/value:指定緩存名字
key:指定緩存數據使用的key(SPEL指定),不指定時默認爲方法實參
keyGenerator:指定key生成器組件id
cacheManager:指定緩存管理器
cacheResolver:
condition:條件知足才緩存
unless:條件知足不緩存
  • @CacheEvict
cacheNames/value:指定緩存名字
key:指定緩存數據使用的key(SPEL指定),不指定時默認爲方法實參
keyGenerator:指定key生成器組件id
cacheManager:指定緩存管理器
cacheResolver:
condition:條件知足才緩存
unless:條件知足不緩存
allEntries:是否刪除指定緩存中的全部數據,默認爲false
beforeInvocation:是否在方法調用前執行緩存刪除,默認爲false
  • @CacheConfig
cacheNames:指定緩存名字
keyGenerator:指定key生成器組件id
cacheManager:指定緩存管理器
cacheResolver:
相關文章
相關標籤/搜索