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學習--logback與properties配置檔案
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>