springboot整合EHCache的實(shí)踐方案
EhCache 是一個(gè)純Java的進(jìn)程內(nèi)緩存框架,具有快速、精干等特點(diǎn),是Hibernate中默認(rèn)的CacheProvider。
ehcache提供了多種緩存策略,主要分為內(nèi)存和磁盤(pán)兩級(jí),所以無(wú)需擔(dān)心容量問(wèn)題。
spring-boot是一個(gè)快速的集成框架,其設(shè)計(jì)目的是用來(lái)簡(jiǎn)化新Spring應(yīng)用的初始搭建以及開(kāi)發(fā)過(guò)程。該框架使用了特定的方式來(lái)進(jìn)行配置,從而使開(kāi)發(fā)人員不再需要定義樣板化的配置。
用戶登錄之后,幾乎之后展示任何頁(yè)面都需要顯示一下用戶信息??梢栽谟脩舻卿洺晒χ髮⒂脩粜畔⑦M(jìn)行緩存,之后直接取緩存數(shù)據(jù)即可。
寫(xiě)在前面
對(duì)于SpringBoot而言,內(nèi)置了屬于自己的緩存框架,即:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency>
如何使用該框架進(jìn)行緩存,網(wǎng)上一大堆資料。但是絕大多數(shù)都是描述如何在service層進(jìn)行緩存,之后從數(shù)據(jù)庫(kù)取數(shù)據(jù)的時(shí)候直接拿緩存數(shù)據(jù),不再進(jìn)行二次查詢了。 但是我目前的需求僅僅是緩存登錄用戶,下次直接用代碼取出來(lái)。而不是再調(diào)一次service方法!貌似搜到任何資料!可能大家都沒(méi)遇到過(guò)吧。
探索方案
在之前的項(xiàng)目中,曾經(jīng)用到過(guò)EHcache,當(dāng)然也有對(duì)應(yīng)的EHCacheUtils方法。下面就說(shuō)一下springboot和ehcache的整合。
真實(shí)操作之后,發(fā)現(xiàn)整合ehcache非常簡(jiǎn)單,三步即可:
導(dǎo)入maven包
<dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> <version>2.10.1</version> </dependency>
在啟動(dòng)類開(kāi)啟緩存機(jī)制
image.png
添加ehcache配置文件,直接在resources下面新建ehcache.xml文件即可。文件配置如下:
<?xml version="1.0" encoding="UTF-8" ?> <ehcache> <cache name="objectCache" maxElementsInMemory="1000"></cache> </ehcache>
使用緩存
此時(shí),springboot已經(jīng)為ehcacheManager生成了一個(gè)Bean。我們?cè)谧约盒枰牡胤街苯幼⑷爰纯?。下面是我的?jiǎn)單utils文件和存數(shù)據(jù)取數(shù)據(jù)的地方,僅供參考。有不對(duì)的地方,歡迎指正。
util如下,只提供set和get方法:
public class EHCacheUtils {
/**
* 設(shè)置緩存對(duì)象
* @param cacheManager
* @param key
* @param object
*/
public static void setCache(CacheManager cacheManager,String key,Object object){
Cache cache = cacheManager.getCache("objectCache");
Element element = new Element(key,object);
cache.put(element);
}
/**
* 從緩存中取出對(duì)象
* @param cacheManager
* @param key
* @return
*/
public static Object getCache(CacheManager cacheManager,String key){
Object object = null;
Cache cache = cacheManager.getCache("objectCache");
if(cache.get(key)!=null && !cache.get(key).equals("")){
object = cache.get(key).getObjectValue();
}
return object;
}
}
存入緩存方法如下:
@Autowired private CacheManager cacheManager; //部分關(guān)鍵代碼 EHCacheUtils.setCache(cacheManager,"op",searchOP);
取出緩存方法如下:
@Autowired private CacheManager cacheManager; Operator searchOP = (Operator) EHCacheUtils.getCache(cacheManager,"op");
寫(xiě)在最后
個(gè)人覺(jué)得,springboot提供的基于注解的方式進(jìn)行緩存更加適合攔截器的方式去處理。對(duì)應(yīng)指定的請(qǐng)求均去走設(shè)置了緩存機(jī)制的service方法,該sevice會(huì)根據(jù)實(shí)際情況去直接取緩存或者查詢數(shù)據(jù)庫(kù)。
總結(jié)
以上所述是小編給大家介紹的springboot整合EHCache的實(shí)踐方案,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- SpringBoot多級(jí)緩存實(shí)現(xiàn)方案總結(jié)
- SpringBoot中Shiro緩存使用Redis、Ehcache的方法
- SpringBoot整合Ehcache3的實(shí)現(xiàn)步驟
- SpringBoot2整合Ehcache組件實(shí)現(xiàn)輕量級(jí)緩存管理
- 詳解springboot整合ehcache實(shí)現(xiàn)緩存機(jī)制
- springboot整合ehcache 實(shí)現(xiàn)支付超時(shí)限制的方法
- springboot整合ehcache和redis實(shí)現(xiàn)多級(jí)緩存實(shí)戰(zhàn)案例
相關(guān)文章
JavaFX Metro UI 和 開(kāi)發(fā)庫(kù)使用簡(jiǎn)介
這篇文章主要介紹了JavaFX Metro UI 和 開(kāi)發(fā)庫(kù)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
教你開(kāi)發(fā)腳手架集成Spring?Boot?Actuator監(jiān)控的詳細(xì)過(guò)程
這篇文章主要介紹了開(kāi)發(fā)腳手架集成Spring?Boot?Actuator監(jiān)控的詳細(xì)過(guò)程,集成包括引入依賴配置文件及訪問(wèn)驗(yàn)證的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
java圖論弗洛伊德和迪杰斯特拉算法解決最短路徑問(wèn)題
這篇文章主要為大家介紹了java圖論弗洛伊德算法和迪杰斯特拉算法解決最短路徑的問(wèn)題示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11
Java實(shí)現(xiàn)小程序簡(jiǎn)單五子棋
這篇文章主要介紹了利用Java實(shí)現(xiàn)小程序簡(jiǎn)單五子棋,本程序適用于java初學(xué)者鞏固類與對(duì)象、事件響應(yīng)、awt包中各種工具的相關(guān)概念以及對(duì)邏輯能力的鍛煉,下面來(lái)看具體實(shí)現(xiàn)吧2021-12-12
android中判斷服務(wù)或者進(jìn)程是否存在實(shí)例
本篇文章主要介紹了android中判斷服務(wù)或者進(jìn)程是否存在實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05
存儲(chǔ)過(guò)程創(chuàng)建及springboot代碼調(diào)用存儲(chǔ)過(guò)程方式
文章介紹了如何在Navicat中創(chuàng)建存儲(chǔ)過(guò)程,并在Spring Boot項(xiàng)目中調(diào)用存儲(chǔ)過(guò)程,存儲(chǔ)過(guò)程創(chuàng)建步驟包括選擇函數(shù)類型、自定義函數(shù)名、添加參數(shù)等,在Spring Boot中調(diào)用存儲(chǔ)過(guò)程時(shí),可以通過(guò)JdbcTemplate或MyBatis等工具進(jìn)行2024-11-11

