
Spring Cache是一個框架,只要簡單加一個注解,就能實現(xiàn)緩存功能。Spring Cache是Spring Framework提供的一個模塊,它為應(yīng)用程序添加了緩存支持。通過使用Spring Cache,你可以在方法級別上定義緩存規(guī)則,將方法的返回結(jié)果緩存起來,以提高方法調(diào)用的性能和響應(yīng)速度。
??簡述Spring Cache
是一個框架,只要簡單加一個注解
,就能實現(xiàn)緩存功能
Spring Cache 是 Spring Framework 提供的一個模塊,它為應(yīng)用程序添加了緩存支持。通過使用 Spring Cache,你可以在方法級別上定義緩存規(guī)則,將方法的返回結(jié)果緩存起來,以提高方法調(diào)用的性能和響應(yīng)速度。
Spring Cache 的主要特點和功能包括:
注解驅(qū)動:Spring Cache 基于注解,通過在方法上添加 @Cacheable、@CachePut、@CacheEvict 等注解,來定義緩存規(guī)則和行為。
支持多種緩存實現(xiàn):Spring Cache 支持多種常見的緩存實現(xiàn),包括 Ehcache、Redis、Caffeine、ConcurrentMap 等,你可以根據(jù)自己的需求選擇合適的緩存提供者。
靈活的緩存配置:你可以通過配置文件或者 Java 代碼來靈活地配置緩存管理器、緩存的過期時間、緩存的鍵生成策略等。
支持條件化的緩存操作:除了基本的緩存注解外,Spring Cache 還支持條件化的緩存操作,比如通過 SpEL 表達(dá)式來定義條件,決定是否執(zhí)行緩存操作。
總之,Spring Cache 提供了一種便捷的方式來實現(xiàn)方法級別的緩存,使得開發(fā)者可以專注于業(yè)務(wù)邏輯的實現(xiàn),而不必過多關(guān)注緩存的管理和維護(hù)。這樣可以有效地提升應(yīng)用程序的性能,并減少對底層緩存實現(xiàn)的耦合。
??????常用注解
@Cacheable:觸發(fā)將方法返回結(jié)果緩存。
@CacheEvict:觸發(fā)從緩存中清除一條或多條數(shù)據(jù)。
@CachePut:觸發(fā)將方法返回結(jié)果更新到緩存。
@Caching:組合多個緩存注解在一個方法上。
@CacheConfig:在類級別共享緩存注解的通用配置。
??使用SpringCache
使用SpringCache需要把下面的代碼導(dǎo)入到pom文件中
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
<version>2.7.3</version>
</dependency>
這樣子我們就可以使用SpringCache了
我們打開下面鏈接里面的文件,我們下面要使用文件中的代碼進(jìn)行講解
我用夸克網(wǎng)盤分享了「springcache-demo.zip」,點擊鏈接即可保存。打開「夸克APP」 鏈接:https://pan.quark.cn/s/571a45c464d6
我們首先來啟動Redis服務(wù)
CacheDemoApplication.java
在啟動類上加上這個注解,開啟緩存注解功能
@EnableCaching
??@Cacheable注解
進(jìn)入controller包
UserController.java
加入下面的注解
@CachePut
插入數(shù)據(jù)的同時,我們還需要把數(shù)據(jù)保存到Redis中一份
?測試
我們啟動項目,輸入http://localhost:8888/doc.html打開接口文檔
進(jìn)行測試
發(fā)現(xiàn)發(fā)送成功,我們?nèi)ゲ榭磾?shù)據(jù)庫,發(fā)現(xiàn)數(shù)據(jù)庫已經(jīng)插入了一條數(shù)據(jù)了
我們打開Redis Desktop Manager,連接成功后,發(fā)送數(shù)據(jù)
發(fā)現(xiàn)
user5對象已經(jīng)進(jìn)行了序列化
??@CacheEvict
??一次清理一條數(shù)據(jù)
如果我們把數(shù)據(jù)庫中的數(shù)據(jù)給刪除掉了,那么對應(yīng)的緩存數(shù)據(jù)我們也應(yīng)該刪除,下面我們就來使用@CacheEvict注解來刪除緩存數(shù)據(jù)
我們加上這一段代碼
@CacheEvict(cacheNames = "userCache",key = "#id")
然后啟動項目
輸入http://localhost:8888/doc.html打開接口文檔
進(jìn)行測試
查詢數(shù)據(jù)庫,發(fā)現(xiàn)數(shù)據(jù)庫里面對應(yīng)id=2的字段被刪除了
Redis緩存也刪除了
??一次刪除多條數(shù)據(jù)
我們在deleteAll這個方法中進(jìn)行操作
仍然加上@CacheEvict注解
@CacheEvict(cacheNames = "userCache",allEntries = true)
使用接口文檔http://localhost:8888/doc.html
發(fā)送數(shù)據(jù),就可以刪除所有緩存了
本文介紹了Spring Cache的常用注解及示例,讓大家快速上手Spring Cache的使用。Spring Cache是一個非常強(qiáng)大的緩存框架,能夠通過簡單的注解就實現(xiàn)緩存,大大簡化了我們的開發(fā)工作。希望本文對大家有所幫助,如果還有疑問,歡迎在評論區(qū)交流。文章來源:http://www.zghlxwxcb.cn/news/detail-752833.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-752833.html
到了這里,關(guān)于【SpringBoot篇】使用Spring Cache高效處理緩存數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!