欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot集成Caffeine緩存的實現(xiàn)步驟

 更新時間:2021年05月20日 09:53:38   作者:老K的Java博客  
Caffeine cache是一個針對Java的高性能緩存庫。在本文中,我們將介紹它與Spring Boot如何一起使用。

Maven依賴

要開始使用咖啡因Caffeine和Spring Boot,我們首先添加spring-boot-starter-cache和咖啡因Caffeine依賴項:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-cache</artifactId>
    </dependency>
    <dependency>
        <groupId>com.github.ben-manes.caffeine</groupId>
        <artifactId>caffeine</artifactId>
    </dependency>
</dependencies>

這些將導入基本Spring緩存支持,以及Caffeine庫。

配置

現(xiàn)在我們需要在Spring Boot應用程序中配置緩存。

首先,我們制造一種Caffeine bean。這是控制緩存行為(如過期、緩存大小限制等)的主要配置:

@Bean
public Caffeine caffeineConfig() {
    return Caffeine.newBuilder().expireAfterWrite(60, TimeUnit.MINUTES);
}

接下來,我們需要使用Spring CacheManager接口創(chuàng)建另一個bean。Caffeine提供了這個接口的實現(xiàn),它需要我們在上面創(chuàng)建的咖啡因?qū)ο螅?/p>

@Bean
public CacheManager cacheManager(Caffeine caffeine) {
    CaffeineCacheManager caffeineCacheManager = new CaffeineCacheManager();
    caffeineCacheManager.setCaffeine(caffeine);
    return caffeineCacheManager;
}

最后,我們需要使用@EnableCaching注釋在springboot中啟用緩存。這可以添加到應用程序中的任何@Configuration類中。

示例

在啟用緩存并配置為使用咖啡因的情況下,讓我們看看如何在SpringBoot應用程序中使用緩存的幾個示例。

在SpringBoot中使用緩存的主要方法是使用@Cacheable注釋。這個注釋適用于SpringBean的任何方法(甚至整個類)。它指示注冊的緩存管理器將方法調(diào)用的結(jié)果存儲在緩存中。

典型的用法是服務類內(nèi)部:

@Service
public class AddressService {
    @Cacheable
    public AddressDTO getAddress(long customerId) {
        // lookup and return result
    }
}

使用不帶參數(shù)的@Cacheable注釋將強制Spring為cache和cache鍵使用默認名稱。

我們可以通過向注釋中添加一些參數(shù)來覆蓋這兩種行為:

@Service
public class AddressService {
    @Cacheable(value = "address_cache", key = "customerId")
    public AddressDTO getAddress(long customerId) {
        // lookup and return result
    }
}

上面的例子告訴Spring使用名為address_cache的緩存和customerId參數(shù)作為緩存鍵。

最后,由于緩存管理器本身就是一個SpringBean,我們還可以將它自動連接到任何其他bean中并直接使用它:

@Service
public class AddressService {

    @Autowired
    CacheManager cacheManager;

    public AddressDTO getAddress(long customerId) {
        if(cacheManager.containsKey(customerId)) {
            return cacheManager.get(customerId);
        }
        
        // lookup address, cache result, and return it
    }
}

完整代碼地址:https://github.com/eugenp/tutorials/tree/master/spring-boot-modules/spring-boot-libraries

以上就是SpringBoot集成Caffeine緩存的步驟的詳細內(nèi)容,更多關于SpringBoot集成Caffeine緩存的資料請關注腳本之家其它相關文章!

相關文章

  • Java實現(xiàn)經(jīng)典游戲超級瑪麗的示例代碼

    Java實現(xiàn)經(jīng)典游戲超級瑪麗的示例代碼

    在你的童年記憶里,是否有一個蹦跳、頂蘑菇的小人?本文將用java語言實現(xiàn)經(jīng)典游戲《超級瑪麗》,文中采用了swing技術進行了界面化處理,需要的可以參考一下
    2022-02-02
  • Gradle的基本使用

    Gradle的基本使用

    這篇文章主要介紹了Gradle的基本使用方法,幫助大家更好的理解和學習Gradle的相關知識,感興趣的朋友可以了解下
    2021-03-03
  • java使用Socket實現(xiàn)文件上傳功能

    java使用Socket實現(xiàn)文件上傳功能

    這篇文章主要為大家詳細介紹了java使用Socket實現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • java 讀取文件方法的總結(jié)

    java 讀取文件方法的總結(jié)

    這篇文章主要介紹了java 讀取文件方法的總結(jié)的相關資料,這里提供文件讀取5種方法并附實例,需要的朋友可以參考下
    2017-08-08
  • 解決JDK21中用不了TimeUtild問題

    解決JDK21中用不了TimeUtild問題

    在使用TimeUtil時,可能因為IDE版本不兼容導致問題,升級IDEA到2023.2以上版本可解決此問題,詳細步驟可以通過評論區(qū)索取安裝包或直接從官網(wǎng)下載,分享個人經(jīng)驗,希望對大家有幫助
    2024-10-10
  • 解決IDEA中多模塊下Mybatis逆向工程不生成相應文件的情況

    解決IDEA中多模塊下Mybatis逆向工程不生成相應文件的情況

    這篇文章主要介紹了解決IDEA中多模塊下Mybatis逆向工程不生成相應文件的情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 一文帶你搞懂Java中的遞歸

    一文帶你搞懂Java中的遞歸

    這篇文章主要為大家詳細介紹了Java中的遞歸的實現(xiàn)以及應用,文中的示例代碼講解詳細,對我們學習Java有一定幫助,需要的可以參考一下
    2022-10-10
  • Java8中 LocalDate和java.sql.Date的相互轉(zhuǎn)換操作

    Java8中 LocalDate和java.sql.Date的相互轉(zhuǎn)換操作

    這篇文章主要介紹了Java8中 LocalDate和java.sql.Date的相互轉(zhuǎn)換操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Java中關于size()>0?和isEmpt()的性能考量

    Java中關于size()>0?和isEmpt()的性能考量

    這篇文章主要介紹了Java中關于size()>0?和isEmpt()性能考量,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • java使用gzip實現(xiàn)文件解壓縮示例

    java使用gzip實現(xiàn)文件解壓縮示例

    這篇文章主要介紹了java使用gzip實現(xiàn)文件解壓縮示例,需要的朋友可以參考下
    2014-03-03

最新評論