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

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

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

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

添加pom引用

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

啟動類添加開啟緩存注解:@EnableCaching

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

<?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則不會被清除,此時與timeout沖突,通常設(shè)置為false-->
    <!-- diskPersistent:是否啟用磁盤持久化-->
    <!-- maxElementsInMemory:最大緩存數(shù)量-->
    <!-- overflowToDisk:超過最大緩存數(shù)量是否持久化到磁盤-->
    <!-- timeToIdleSeconds:最大不活動間隔,設(shè)置過長緩存容易溢出,設(shè)置過短無效果,可用于記錄時效性數(shù)據(jù),例如驗證碼-->
    <!-- timeToLiveSeconds:最大存活時間-->
    <!-- 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>

這里我定義了一個緩存名字為cache1

修改項目的配置文件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)用一下測試看看

    @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是同一個對象,當(dāng)程序睡眠了三秒之后,再次調(diào)用方法,就會重新創(chuàng)建對象,緩存生效

注意事項:

@Cacheable修飾的方法必須是public并且不能是static,原理是因為使用了動態(tài)代理,需要重寫方法

xml里面的配置要寫全,要不然項目啟動報錯,就是下圖這些

xml里面配置的defaultCache沒看出有啥用,我也沒刪了試試

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

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

相關(guān)文章

  • pyqt5中動畫的使用詳解

    pyqt5中動畫的使用詳解

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

    python破解bilibili滑動驗證碼登錄功能

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

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

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

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

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

    Python 12306搶火車票腳本

    這篇文章主要為大家詳細(xì)介紹了Python 12306搶火車票腳本,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    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)算的實現(xiàn)方法

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

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

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

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

    Python換行與不換行的輸出實例

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

    Python驗證的50個常見正則表達(dá)式

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

最新評論

隆回县| 噶尔县| 调兵山市| 墨玉县| 和林格尔县| 平谷区| 九台市| 托克托县| 繁昌县| 绵阳市| 双牌县| 姜堰市| 扎兰屯市| 容城县| 大关县| 万载县| 临漳县| 璧山县| 姜堰市| 昭觉县| 安徽省| 长春市| 惠州市| 商丘市| 西丰县| 岗巴县| 兴宁市| 玛纳斯县| 乌鲁木齐市| 澜沧| 衡南县| 利辛县| 宁阳县| 叶城县| 荃湾区| 阿瓦提县| 喀喇沁旗| 临夏市| 廊坊市| 贵州省| 苏州市|