亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JSR-107緩存規(guī)范介紹

 更新時間:2025年05月22日 14:50:44   作者:扛麻袋的少年  
JSR是Java Specification Requests的縮寫,意思是Java規(guī)范提案,下面給大家介紹JSR-107緩存規(guī)范的相關知識,感興趣的朋友一起看看吧

緩存是每一個系統都應該考慮的功能,它用來加速系統的訪問,提升系統的性能。 比如說一些經常需要訪問的高頻熱點數據,例如:電商網站的商品信息。 如果商品信息存儲在數據庫中,每次來查詢商品信息都要來查詢數據庫的話,這樣的操作耗時太大,代價也相對太大。 此時我們可以引入一個緩存中間件,將商品信息存放在緩存中,就不需要直接來查詢數據庫了。 先來查詢緩存中是否有該商品的信息,如果有就直接拿來使用;如果沒有的話,然后再去數據庫中查詢,然后再將數據放回到緩存。因為應用程序與緩存的交互是非??斓?,這樣的話就可以大大減緩數據庫的壓力。

再比如:一些臨時性的數據,為某個用戶的手機號發(fā)送了驗證碼,三分鐘有效,過期刪除。如果將這些數據存儲在數據庫中,也是非常有壓力的。我們也可以將這些數據存儲在緩存中間件中。系統直接從緩存中獲取數據即可。

緩存在系統中用的還是非常多的。所以為了統一緩存的開發(fā)規(guī)范,提升系統的擴展性。J2EE 發(fā)布了 JSR-107規(guī)范。主要提供了5個接口。

1.什么是JSR-107

JSR是Java Specification Requests的縮寫,意思是Java 規(guī)范提案。2012年10月26日JSR規(guī)范委員會發(fā)布了JSR 107(JCache API的首個早期草案)。JCache 規(guī)范定義了一種對Java對象臨時在內存中進行緩存的方法,包括對象的創(chuàng)建、共享訪問、假脫機(spooling)、失效、各JVM的一致性等,可被用于緩存JSP內最經常讀取的數據。
Java Caching 定義了5個核心接口,分別是CachingProvider、CacheManager、CacheEntryExpiry。

接口介紹
CachingProvider緩存提供者。 定義了創(chuàng)建、配置、獲取、管理和控制多個 CacheManager。一個應用可以在運行期訪問多個 CachingProvider。
CacheManager緩存管理器。 定義了創(chuàng)建、配置、獲取、管理和控制多個唯一命名的 Cache,這些 Cache 存在于 CacheManager 的上下文中。一個 CacheManager 僅被一個 CachingProvider 所擁有。
Cache緩存組件。 是一個類似 Map 的數據結構并臨時存儲以 key 為索引的值。一個 Cache 僅被一個 CacheManager 所擁有。
Entry鍵值對。 是一個存儲在 Cache 中的 key-value 對。
Expiry有效期。 每一個存儲在 Cache 中的條目有一個定義的有效期。一旦超過這個時間,條目為過期的狀態(tài)。一旦過期,條目將不可訪問、更新和刪除。緩存有效期可以通過 ExpiryPolicy 設置。

2.應用調用緩存圖示

應用來調用緩存,首先會先調用CachingProvider(緩存提供者),緩存提供者管理了多個CacheManager(緩存管理器),緩存管理器中才真正的Cache緩存。緩存管理器中可以管理不同類型的緩存,比如:Redis、EhCache 等。

在具體緩存組件中,我們還可以設置不同模塊的緩存,比如:Redis 中我們可以來緩存 商品信息、熱點數據 等不同模塊數據,每個緩存都是Entry<K,V>鍵值對類型。并且我們可以對緩存設置Expiry過期時間,指定緩存存活的時間。

緩存在我們應用開發(fā)中的調用步驟,如下圖所示:

3.JSR-107規(guī)范使用

在項目中使用 JSR-107規(guī)范,首先需要導入 Maven 依賴:

<dependency> 
	<groupId>javax.cache</groupId>
	<artifactId>cache-api</artifactId>
</dependency>

該包下提供了 CachingProvider 接口,我們可以通過 getCacheManager()方式來獲取 CacheManager。 CacheManger 通過 createCache()、getCache() 方法來直接獲取到緩存Cache,緩存的具體增刪改查操作,就在 Cache 組件中。

JSR-107 作為一個 Java 規(guī)范,它定義的都是一些接口,類似于 JDBC 規(guī)范。它的好處在于:我們直接面向接口編程,需要用到哪種緩存的實現,我們來直接引入該緩存實現即可,系統就能運行起來。 然而:并不是市面上所有的緩存組件都提供了 JSR-107 規(guī)范的實現。如果我們選擇的緩存中間件沒有實現 JSR-107 規(guī)范接口,那么就需要自己來實現咯。整個過程 API 開發(fā)也比較麻煩,所以 JSR-107 規(guī)范在我們的日常開發(fā)中用的還是比較少。

4.Spring 緩存機制

既然 JSR-107 規(guī)范馬失前蹄。Spring 為了簡化項目開發(fā),便為我們提供了自己的緩存機制。Spring 緩存機制底層概念同 JSR-107 是通用的,也定義了一些借口、注解等。所以后來在開發(fā)中,使用更多的也就是 Spring 緩存機制咯。

下一篇,我們就來繼續(xù)了解 Spring 緩存機制。→→→→→點擊跳轉:Spring 緩存機制介紹

如果你還想要了解更多關于JSR-107規(guī)范相關,請移步此處學習:JSR107中文版(非官方)

到此這篇關于JSR-107緩存規(guī)范介紹的文章就介紹到這了,更多相關JSR-107緩存內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • SpringBoot日志框架之Log4j2快速入門與參數詳解

    SpringBoot日志框架之Log4j2快速入門與參數詳解

    本文介紹了SpringBoot日志框架log4j2的基本使用和配置方法,包括將日志輸出到控制臺、文件、Elasticsearch和Kafka,多個輸出目的地的配置,異步日志記錄器的使用以及l(fā)og4j2.xml配置文件的詳細語法和參數含義,需要的朋友可以參考下
    2023-05-05
  • java中金額元轉萬元工具類的實例

    java中金額元轉萬元工具類的實例

    這篇文章主要介紹了java中金額元轉萬元工具類的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java實現貪吃蛇游戲的示例代碼

    Java實現貪吃蛇游戲的示例代碼

    這篇文章主要為大家詳細介紹了如何利用Java實現簡單的貪吃蛇游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • java中volatile關鍵字的作用詳解

    java中volatile關鍵字的作用詳解

    這篇文章主要介紹了java中volatile關鍵字的作用詳解,volatile可以保證,若一個線程改變了某塊內存的值,其他線程是可見的,以至于其他線程能及時更新這塊內存,需要的朋友可以參考下
    2023-09-09
  • springboot整合spring-retry的實現示例

    springboot整合spring-retry的實現示例

    本文將結合實例代碼,介紹springboot整合spring-retry的實現示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 簡單了解Java編程中拋出異常的方法

    簡單了解Java編程中拋出異常的方法

    這篇文章主要介紹了Java編程中拋出異常的方法,是Java入門學習中的基礎知識,需要的朋友可以參考下
    2015-11-11
  • 一文搞懂Runnable、Callable、Future、FutureTask及應用

    一文搞懂Runnable、Callable、Future、FutureTask及應用

    一般創(chuàng)建線程只有兩種方式,一種是繼承Thread,一種是實現Runnable接口,在Java1.5之后就有了Callable、Future,這二種可以提供線程執(zhí)行完的結果,本文主要介紹了Runnable、Callable、Future、FutureTask及應用,感興趣的可以了解一下
    2023-08-08
  • java音頻播放示例分享(java如何播放音頻)

    java音頻播放示例分享(java如何播放音頻)

    java如何播放音頻?下面的代碼就介紹了java音頻播放示例,需要的朋友可以參考下
    2014-04-04
  • 使用IDEA工具配置和運行vue項目及遇到的坑

    使用IDEA工具配置和運行vue項目及遇到的坑

    這篇文章主要介紹了使用IDEA工具配置和運行vue項目及遇到的坑,需要的朋友可以參考下
    2018-09-09
  • 如何在Redis中實現分頁排序查詢過程解析

    如何在Redis中實現分頁排序查詢過程解析

    這篇文章主要介紹了如何在Redis中實現分頁排序查詢過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07

最新評論