日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Cache抽象-缓存管理器

發布時間:2025/3/21 javascript 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Cache抽象-缓存管理器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  • 概述
  • SimpleCacheManager
  • NoOpCacheManager
  • ConcurrentMapCacheManager
  • CompositeCacheManager

概述

CacheManager是SPI(Service Provider Interface,服務提供程序接口),提供了訪問緩存名稱和緩存對象的方法,同時也提供了管理緩存、操作緩存和移除緩存的方法。

下面我們來看下SpringCache框架說提供的不同的緩存管理器實現


SimpleCacheManager

通過使用SimpleCacheManager可以配置緩存列表,并利用這些緩存進行相關的操作。

SimpleCacheManager是緩存管理器的簡化版本。 我們來看一下下面的配置實例。 對應緩存的定義,我們使用了ConcurrentMapCacheFactoryBean類對ComcurrentMapCache進行實例化,該實例使用了JDK的ConcurrentMap實現。

<!-- (1)添加cache命名空間和schema文件 --> <!-- (2)開啟支持緩存的配置項 --><cache:annotation-driven cache-manager="cacheManager" proxy-target-class="true"/><!-- (3) 配置cacheManger --><bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager"p:caches-ref="cacheObjects"></bean><!-- (4)caches集合 --><util:set id="cacheObjects"><bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean"p:name="default"/><!-- @Cacheable(cacheNames = "littleArtisan")標注的cache名稱 --><bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean"p:name="littleArtisan"/></util:set>

NoOpCacheManager

NoOpCacheManager主要用于測試目的,事實上它并不緩存任何數據。 我們來看下該緩存管理器的配置定義,我們沒有未該管理器提供緩存列表,因為它僅僅作為測試的目的

<bean id="noOpCacheManager" class="org.springframework.cache.support.NoOpCacheManager"/>

ConcurrentMapCacheManager

ConcurrentMapCacheManager使用了JDK的ConcurrentMap。 它提供了與SimpleCacheManager類似的共鞥,但并不需要像前面那樣定義緩存。 該緩存定義如下:

<bean id="concurrentMapCacheManager" class="org.springframework.cache.concurrent.ConcurrentMapCacheManager"/>

CompositeCacheManager

CompositeCacheManager能夠定義多個緩存管理器。

當在應用程序上下文中聲明 <cache:annotation-driven>標記時,它只提供一個緩存管理器,有的時候并不能滿足用戶的需求,而CompositeCacheManager定義將多個緩存管理器定義組合在一起,從而擴展了該功能。

此外,CompositeCacheManager還提供了一種機制,通過使用fallbackToNoOpCache屬性回到NoOpCacheManager.

我們來看下面的的例子: 定義了一個CompositeCacheManager,將一個簡單的緩存管理器與HazelCast緩存管理器綁定到一起 。 簡單的緩存管理器定義了members緩存,而HazelCast緩存管理器定義了visitors.

<bean id="compositeCacheManager" class="org.springframework.cache.support.CompositeCacheManager"><property name="cacheManagers"><list><!-- SimpleCacheManager --><bean class="org.springframework.cache.support.SimpleCacheManager"><property name="caches"><set><bean id="membes"class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean"></bean></set></property></bean><!-- HazelcastCacheManager --><bean id="cacheManager" class="com.hazelcast.spring.cache.HazelcastCacheManager"><constructor-arg ref="hazelcast" /></bean></list></property></bean><hz:hazelcast id="hazelcast"><hz:config><hz:map name="vistors"><hz:map-store enabled="true" class-name="com.sartisan.cache.domain.Vistor"write-delay-seconds="0" /></hz:map></hz:config></hz:hazelcast>

總結

以上是生活随笔為你收集整理的Spring Cache抽象-缓存管理器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。