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

springboot整合單機(jī)緩存ehcache的實(shí)現(xiàn)

 更新時(shí)間:2023年02月13日 09:37:35   作者:chenxianchon  
本文主要介紹了springboot整合單機(jī)緩存ehcache的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

區(qū)別于redis的分布式緩存,ehcache是純java進(jìn)程內(nèi)的單機(jī)緩存,根據(jù)不同的場(chǎng)景可選擇使用,以下內(nèi)容主要為springboot整合ehcache以及注意事項(xiàng)

添加pom引用

<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache</artifactId>
    <version>2.10.9.2</version>
</dependency>

啟動(dòng)類添加開啟緩存注解:@EnableCaching

添加xml配置,注意,ehcache需要單獨(dú)的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
         updateCheck="false">
 
    <!--默認(rèn)緩存策略 -->
    <!-- external:是否永久存在,設(shè)置為true則不會(huì)被清除,此時(shí)與timeout沖突,通常設(shè)置為false-->
    <!-- diskPersistent:是否啟用磁盤持久化-->
    <!-- maxElementsInMemory:最大緩存數(shù)量-->
    <!-- overflowToDisk:超過(guò)最大緩存數(shù)量是否持久化到磁盤-->
    <!-- timeToIdleSeconds:最大不活動(dòng)間隔,設(shè)置過(guò)長(zhǎng)緩存容易溢出,設(shè)置過(guò)短無(wú)效果,可用于記錄時(shí)效性數(shù)據(jù),例如驗(yàn)證碼-->
    <!-- timeToLiveSeconds:最大存活時(shí)間-->
    <!-- memoryStoreEvictionPolicy:緩存清除策略-->
    <defaultCache
            eternal="false"
            diskPersistent="false"
            maxElementsInMemory="1000"
            overflowToDisk="false"
            timeToIdleSeconds="60"
            timeToLiveSeconds="60"
            memoryStoreEvictionPolicy="LRU" />
 
 
    <cache name="cache1"
           eternal="false"
           diskPersistent="false"
           maxElementsInMemory="1000"
           overflowToDisk="false"
           timeToIdleSeconds="2"
           timeToLiveSeconds="2"
           memoryStoreEvictionPolicy="LRU" />
</ehcache>

這里我定義了一個(gè)緩存名字為cache1

修改項(xiàng)目的配置文件application.properties,添加spring緩存類型以及緩存配置文件路徑

spring.cache.ehcache.config=classpath:ehcache.xml
spring.cache.type=ehcache

上面的步驟做好之后,就可以使用了

給你需要加緩存的方法添加注解

@Configuration
public class TestConfig {
 
    @Cacheable(value = "cache1",key = "#id")
    public TestController.Person create(String id) {
        return new TestController.Person();
    }
}

這里的value跟xml配置文件里的一致即可

我們調(diào)用一下測(cè)試看看

    @GetMapping("/testCache1")
    public void testCache1(@Param("id") String id) throws InterruptedException {
        Person obj1 = testConfig.create(id);
        Person obj2 = testConfig.create(id);
        Thread.sleep(3000);
        Person obj3 = testConfig.create(id);
        Person obj4 = testConfig.create(id);
 
        log.info("test1:"+obj1.toString());
        log.info("test2:"+obj2.toString());
        log.info("test3:"+obj3.toString());
        log.info("test4:"+obj4.toString());
        System.out.println(obj1.equals(obj2));
    }

執(zhí)行一下結(jié)果看

可以看到,obj1跟obj2是同一個(gè)對(duì)象,當(dāng)程序睡眠了三秒之后,再次調(diào)用方法,就會(huì)重新創(chuàng)建對(duì)象,緩存生效

注意事項(xiàng):

@Cacheable修飾的方法必須是public并且不能是static,原理是因?yàn)槭褂昧藙?dòng)態(tài)代理,需要重寫方法

xml里面的配置要寫全,要不然項(xiàng)目啟動(dòng)報(bào)錯(cuò),就是下圖這些

xml里面配置的defaultCache沒(méi)看出有啥用,我也沒(méi)刪了試試

使用緩存的方法不能在@RestController修飾的類中,即不能在controller層,要不然緩存失效,可以在@Service、@Configuratin、@Component等類下面

到此這篇關(guān)于springboot整合單機(jī)緩存ehcache的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)springboot單機(jī)緩存ehcache內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pyqt5中動(dòng)畫的使用詳解

    pyqt5中動(dòng)畫的使用詳解

    這篇文章主要介紹了pyqt5中動(dòng)畫的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python破解bilibili滑動(dòng)驗(yàn)證碼登錄功能

    python破解bilibili滑動(dòng)驗(yàn)證碼登錄功能

    這篇文章主要介紹了python破解bilibili滑動(dòng)驗(yàn)證碼登錄功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • python生成13位或16位時(shí)間戳以及反向解析時(shí)間戳的實(shí)例

    python生成13位或16位時(shí)間戳以及反向解析時(shí)間戳的實(shí)例

    這篇文章主要介紹了python生成13位或16位時(shí)間戳以及反向解析時(shí)間戳的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • python隨機(jī)3分鐘發(fā)送一次消息完整代碼

    python隨機(jī)3分鐘發(fā)送一次消息完整代碼

    最近我接到這樣的任務(wù)需求有一個(gè)實(shí)時(shí)任務(wù),想要間隔3分鐘發(fā)送,最近的一次消息,接下來(lái)通過(guò)本文給大家分享python隨機(jī)3分鐘發(fā)送一次消息,需要的朋友可以參考下
    2024-03-03
  • Python 12306搶火車票腳本

    Python 12306搶火車票腳本

    這篇文章主要為大家詳細(xì)介紹了Python 12306搶火車票腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python中函數(shù)內(nèi)部無(wú)法獲取局部變量的解決辦法

    Python中函數(shù)內(nèi)部無(wú)法獲取局部變量的解決辦法

    本文介紹了在Python中如何處理函數(shù)內(nèi)部訪問(wèn)和修改外部局部變量的問(wèn)題,通過(guò)locals()獲取當(dāng)前函數(shù)的局部變量字典,globals()獲取全局變量字典,以及使用nonlocal關(guān)鍵字聲明非局部變量的方法,,需要的朋友可以參考下
    2025-07-07
  • python scipy卷積運(yùn)算的實(shí)現(xiàn)方法

    python scipy卷積運(yùn)算的實(shí)現(xiàn)方法

    這篇文章主要介紹了python scipy卷積運(yùn)算的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python批量修改文件后綴的方法

    Python批量修改文件后綴的方法

    這篇文章主要介紹了Python批量修改文件后綴的方法,有需要的朋友可以參考一下
    2014-01-01
  • Python換行與不換行的輸出實(shí)例

    Python換行與不換行的輸出實(shí)例

    這篇文章主要介紹了Python換行與不換行的輸出實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • Python驗(yàn)證的50個(gè)常見正則表達(dá)式

    Python驗(yàn)證的50個(gè)常見正則表達(dá)式

    這篇文章主要給大家介紹了關(guān)于利用Python驗(yàn)證的50個(gè)常見正則表達(dá)式的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評(píng)論