最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2023年02月13日 09:37:35   作者:chenxianchon  
本文主要介紹了springboot整合單機(jī)緩存ehcache的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(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:超過最大緩存數(shù)量是否持久化到磁盤-->
    <!-- timeToIdleSeconds:最大不活動(dòng)間隔,設(shè)置過長緩存容易溢出,設(shè)置過短無效果,可用于記錄時(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沒看出有啥用,我也沒刪了試試

使用緩存的方法不能在@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)畫的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(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ì)大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python隨機(jī)3分鐘發(fā)送一次消息完整代碼

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

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

    Python 12306搶火車票腳本

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

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

    本文介紹了在Python中如何處理函數(shù)內(nèi)部訪問和修改外部局部變量的問題,通過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)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python批量修改文件后綴的方法

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

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

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

    這篇文章主要介紹了Python換行與不換行的輸出實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    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)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評(píng)論

舟曲县| 慈溪市| 岳池县| 杨浦区| 武陟县| 宾阳县| 开远市| 会宁县| 平和县| 枣庄市| 三明市| 杭锦后旗| 百色市| 雅江县| 新乡市| 临颍县| 肇州县| 奉贤区| 温泉县| 莱芜市| 海兴县| 连州市| 平定县| 噶尔县| 南汇区| 兴仁县| 荥经县| 右玉县| 金堂县| 新建县| 巴林左旗| 林周县| 安吉县| 边坝县| 镶黄旗| 上犹县| 武功县| 出国| 绍兴市| 盐亭县| 玉屏|