1. 程式人生 > >Spring Boot 註解配置與EhCache使用

Spring Boot 註解配置與EhCache使用

註解配置與EhCache使用

建立一個maven專案

這裡寫圖片描述

pom檔案引入

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-cache</artifactId>
    </dependency>

這裡寫圖片描述

新建ehcache.xml 檔案

這裡寫圖片描述

<?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">
<diskStore path="java.io.tmpdir/Tmp_EhCache" /> <!-- 預設配置 --> <defaultCache maxElementsInMemory="5000" eternal="false" timeToIdleSeconds
="120" timeToLiveSeconds="120" memoryStoreEvictionPolicy="LRU" overflowToDisk="false" />
<cache name="baseCache" maxElementsInMemory="10000" maxElementsOnDisk="100000" /> </ehcache>
配置資訊介紹
           name:快取名稱。  
           maxElementsInMemory:快取最大個數。  
           eternal:物件是否永久有效,一但設定了,timeout
將不起作用。 timeToIdleSeconds:設定物件在失效前的允許閒置時間(單位:秒)。僅當eternal=false物件不是永久有效時使用,可選屬性,預設值是0,也就是可閒置時間無窮大。 timeToLiveSeconds:設定物件在失效前允許存活時間(單位:秒)。最大時間介於建立時間和失效時間之間。僅當eternal=false物件不是永久有效時使用,預設是0.,也就是物件存活時間無窮大。 overflowToDisk:當記憶體中物件數量達到maxElementsInMemory時,Ehcache將會物件寫到磁碟中。 diskSpoolBufferSizeMB:這個引數設定DiskStore(磁碟快取)的快取區大小。預設是30MB。每個Cache都應該有自己的一個緩衝區。 maxElementsOnDisk:硬碟最大快取個數。 diskPersistent:是否快取虛擬機器重啟期資料 Whether the disk store persists between restarts of the Virtual Machine. The default value is false. diskExpiryThreadIntervalSeconds:磁碟失效執行緒執行時間間隔,預設是120秒。 memoryStoreEvictionPolicy:當達到maxElementsInMemory限制時,Ehcache將會根據指定的策略去清理記憶體。預設策略是LRU(最近最少使用)。你可以設定為FIFO(先進先出)或是LFU(較少使用)。 clearOnFlush:記憶體數量最大時是否清除。

建立一個實體類

這裡寫圖片描述

程式碼使用Cacheable ,建立UserMapper

這裡寫圖片描述

這裡寫圖片描述

建立IndexController

我們直接在IndexController呼叫findName方法
這裡寫圖片描述

建立App類

這裡寫圖片描述


package com.cc.springboot.app;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;

@ComponentScan(basePackages = { "com.cc.springboot.controller"})
@MapperScan(basePackages = "com.cc.springboot.mapper")
@EnableCaching//開啟快取註解
@EnableAutoConfiguration
public class App {

    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }

}

測試

我們配置好資料庫
這裡寫圖片描述

看看我們springboot資料庫的user表裡面有什麼資料:
這裡寫圖片描述

然後我們啟動程式:

我們來查詢username=aaa的:
這裡寫圖片描述

之後我們修改這條資料,改為bbb
這裡寫圖片描述

這裡寫圖片描述

訪問的結果還是之前的結果,說明快取成功了。

這裡寫圖片描述

說明它是快取在jvm裡面,是jvm快取。還有一種叫記憶體快取,比如:redis。

ehcache 和 redis 的比較

ehcache直接在jvm虛擬機器中快取,速度快,效率高;但是快取共享麻煩,叢集分散式應用不方便。redis是通過socket訪問到快取服務,效率比ecache低,比資料庫要快很多,處理叢集和分散式快取方便,有成熟的方案。如果是單個應用或者對快取訪問要求很高的應用,用ehcache。如果是大型系統,存在快取共享、分散式部署、快取內容很大的,建議用redis。補充下:ehcache也有快取共享方案,不過是通過RMI或者Jgroup多播方式進行廣播快取通知更新,快取共享複雜,維護不方便;簡單的共享可以,但是涉及到快取恢復,大資料快取,則不合適。

清除快取

這裡寫圖片描述

然後我們修改一下資料庫,改為ccc
這裡寫圖片描述

再次查詢還是一樣:
這裡寫圖片描述

然後我們清除下快取:
這裡寫圖片描述

然後再次查詢bbb
這裡寫圖片描述

可以說明快取已經清除了。

相關推薦

Spring Boot 註解配置EhCache使用

註解配置與EhCache使用 建立一個maven專案 pom檔案引入 <dependency> <groupId>org.springframework.boot</groupId>

Spring Boot中的快取支援——註解配置EhCache使用

一 點睛 隨著時間的積累,應用的使用使用者不斷增加,資料規模也越來越大,往往資料庫查詢操作會成為影響使用者使用體驗的瓶頸,此時使用快取往往是解決這一問題非常好的手段之一。 Spring 3開始提供了強大的基於註解的快取支援,可以通過註解配置方式低侵入的給原有Spring應

Spring Boot中的快取支援(一)註解配置EhCache使用

隨著時間的積累,應用的使用使用者不斷增加,資料規模也越來越大,往往資料庫查詢操作會成為影響使用者使用體驗的瓶頸,此時使用快取往往是解決這一問題非常好的手段之一。Spring 3開始提供了強大的基於註解的快取支援,可以通過註解配置方式低侵入的給原有Spring應用增加快取功能,提高資料訪問效能。 在Spr

Spring Boot(二)配置使用

一、專案屬性配置 注意:在上個專案的基礎上進行操作 將application.propertites改為application.yml,yml檔案格式更為簡單 配置埠、專案字首路徑(注意格式,value前有空格) 新建GirlProperties java檔案(屬性配置檔案

spring boot 屬性配置監控

spring boot 自動配置:針對很多Spring應用程式常見的應用功能,Spring Boot能自動提供相關配置 起步依賴:告訴Spring Boot需要什麼功能,它就能引入需要的庫。 Actuator:讓你能夠深入執行中的Spring Boot應

SpringBoot分散式管理,新增日誌記錄,註解配置EhCache使用

    首先看下專案結構: 首先看下pom.xml配置的jar包:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins

Spring註解配置XML配置之間的比較

註釋配置相對於 XML 配置具有很多的優勢:  它可以充分利用 Java 的反射機制獲取類結構資訊,這些資訊可以有效減少配置的工作。 如:使用 JPA 註釋配置 ORM 對映時,我們就不需要指定 PO 的屬性名、型別等資訊,如果關係表字段和 PO 屬性名、型別都一致,

spring boot 註解方式配置多資料來源使用

1、首先看一下application-dev.yml 配置 spring:     datasource:         type: com.alibaba.druid.pool.Dru

Spring Boot 揭秘實戰(四) 配置文件篇 - 有哪些很棒的特性

real randint 開發人員 hat mod 配置管理 bsp footer tar 文章目錄 1. 使用屬性文件2. YAML文件 1.1. 自定義屬性 1.2. 參數引用 1.3. 隨機數屬性 1.4. application-{profile}.proper

Spring Boot自動配置註解@EnableAutoConfiguration解密

  Spring boot為了自動配置,增加了註解@EnableAutoConfiguration。一般只需要配置@SpringBootApplication即可,為什麼呢? @Target(ElementType.TYPE) @Retention(Ret

Spring Boot 熱部署日誌配置

熱部署和日誌是開發中常用的功能,Srping Boot同樣集成了相應的工具,可以方便地實現這些功能。 熱部署 Spring Boot提供了 spring-boot-devtools 模組用於熱部署,直接引入就行 <dependency>

Spring Boot 整合 Swagger2 配置 OAuth2.0 授權

Spring Boot 整合 Swagger2 很簡單,由於介面採用了OAuth2.0 & JWT 協議做了安全驗證,使用過程中也遇到了很多小的問題,多次嘗試下述配置可以正常使用。 Maven <!-- swagger2 --> <dependen

spring事務 xml配置註解配置 順序

最近在開發中遇到一些問題,在配置xml事務後,又在具體service方法中配置註解,結果註解並不執行。 按我原來的理解是配置xml的目的是為了具體程式碼的簡潔,和大體的統一。而具體的方法如果有特殊的要求,應該執行配置註解。 但是我的理解並不太對。於是我做了一

Spring Boot學習--logbackproperties配置檔案

Spring Boot支援多種log外掛,這裡說的是logback。 準確說來,這次要介紹的有兩點: profiles與logback 從logback中獲取配置檔案中的資訊 有一點需要先說明,這裡先要把logback.xml的名字改為logback-

spring的xml配置annotation註解混合

問題: 在LVMMCrawlerSuit.java是xml配置的bean, 需要注入用@Component宣告的bean. 但是執行的時候卻報NullPointerException. 說明沒有注入進來. 程式碼: 1. java Java程式碼   1. LVMMCrawlerSuit.jav

Spring Boot自動配置原理實踐(一)

前言   Spring Boot眾所周知是為了簡化Spring的配置,省去XML的複雜化配置(雖然Spring官方推薦也使用Java配置)採用Java+Annotation方式配置。如下幾個問題是我剛開始接觸Spring Boot的時候經常遇到的一些疑問,現在總結出來希望能幫助到更多的人理解Spring B

spring boot環境配置

project fda new 信息 fig 比較 fab imp image Eclipse+Maven創建webapp項目<一> 1、開啟eclipse,右鍵new——》other,如下圖找到maven project 2、選

如何編寫Spring-Boot自動配置

not 做的 mage 沒有 stat oot classname ger 內容 摘要 本文主要介紹如何把一個spring的項目(特別是一些公共工具類項目),基於spring boot的自動配置的思想封裝起來,使其他Spring-Boot項目引入後能夠進行快速配置。 Aut

Spring Boot 屬性配置和使用

系統環境 itl class location web ron hashmap 驗證 ssp spring Boot 允許通過外部配置讓你在不同的環境使用同一應用程序的代碼,簡單說就是可以通過配置文件來註入屬性或者修改默認的配置。 Spring Boot 系列

Spring Boot註解方式集成Mybatis

face batis update pac conn src jar包 local code 一、無配置文件註解版 1.pom文件必要jar包的引入 1 <dependency> 2 <groupId>mysql</groupId>