蒼穹外賣--緩存菜品Spring Cache

Spring Cache是一個框架,實現了基于注解的緩存功能,只需要簡單地加一個注解,就能實現緩存功能。

Spring Cache提供了一層抽象,底層可以切換不同的緩存實現,例如:

①EHCache

②Caffeine

③Redis

常用注解:

代碼開發:

package com.itheima.controller;import com.itheima.entity.User;
import com.itheima.mapper.UserMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@Autowiredprivate UserMapper userMapper;@PostMapping@CachePut(cacheNames = "userCache",key="#user.id")//如果使用Spring Cache緩存數據,key的生成:userCache::1public User save(@RequestBody User user){userMapper.insert(user);return user;}@DeleteMapping@CacheEvict(cacheNames = "userCache",key = "#id")public void deleteById(Long id){userMapper.deleteById(id);}@DeleteMapping("/delAll")@CacheEvict(cacheNames = "userCache",allEntries = true)public void deleteAll(){userMapper.deleteAll();}@GetMapping@Cacheable(cacheNames = "userCache",key = "#id")//key的生成:userCache::10public User getById(Long id){User user = userMapper.getById(id);return user;}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/85296.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/85296.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/85296.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

個人簡歷制作MarkDown模板

MarkDown制作個人簡歷的模板放在了github上,大家如有需求,請自取: https://github.com/QQQQQQBY/ResumeTemplate 介紹一下此模板的特點: 🌸個人面試期間使用的、整理的簡歷格式,現在分享給大家。 ?簡歷采…

【MySQL數據庫 | 第五篇】DDL操作2

文章目錄 當前數據庫student的數據數據表操作 - 修改&刪除📖修改操作增加字段👏案例:向數據表student中添加字段 id修改字段的數據類型【只能修改字段的屬性】👏案例:將student表中字段age的屬性由tinyint unsigne…

【瀏覽器插件】如何開發一個Chrome瀏覽器插件

這篇文章來介紹一下,如何開發一個自己的Chrome瀏覽器插件程序。 Chrome瀏覽器插件,其實是讓瀏覽器替我們執行我們自己寫的代碼,既然要讓瀏覽器執行代碼,那么首先,就需要定義一個規范,也就是說,需要讓Chrome瀏覽器知道,你寫的程序是一個插件。 這就需要介紹一下插件中…

詳細講解Redis為什么被設計成單線程

Redis 被設計成單線程的原因主要有以下幾點,這些原因涉及性能優化、復雜性控制、數據一致性以及適用場景等多個方面: 1. 簡化設計與實現 避免鎖競爭:多線程環境下,多個線程訪問共享資源時需要加鎖來保證數據一致性。鎖的使用會增…

Hive 邏輯優化器

Optimizer PointLookupOptimizer 作用:把符合條件的 OR 表達式轉為 IN。 參數hive.optimize.point.lookup 設置是否開啟 PointLookupOptimizer,默認為 true. 參數 hive.optimize.point.lookup.min 控制多少個 OR 表達式轉為 IN,默認 31。 例…

ZYNQ Petalinux實戰:PCIe直通NVMe固態硬盤,解鎖存儲性能新極限!

突破SD卡和SATA的速度枷鎖!本文將手把手教你如何在ZYNQ平臺上通過PCIe接口驅動NVMe固態硬盤。從硬件設計、Linux內核配置到創新性的DMA零拷貝優化,實現2000MB/s+ 的存儲性能飛躍,附完整代碼解析和性能實測對比。 一、為什么選擇PCIe NVMe?存儲性能革命 ZYNQ傳統存儲方案面…

05-mcp-server案例分享-用豆包大模型 1.6 手搓文生圖視頻 MCP-server發布到PyPI官網

1前言 上期給大家介紹過mcp-server案例分享-用豆包大模型 1.6 手搓文生圖視頻 MCP-server。當時部署的方式使用了一個私有云SSE的部署。當時缺少一個本地部署的方式,有的小伙伴給我留言能不能有一個本地話部署方式了。今天就給大家帶來一個本地化部署的方案。 話不…

MCP Parameters 增加描述

場景:本地MCP開發完后是否發現CLINE上顯示的Parameters 顯示No description 方法1 :使用參數元數據 (Annotated) 可以使用 Pydantic 的with 類提供有關參數的其他元數據Annotated。這種方法更受歡迎,因為它更現代,并且將類型提示…

STM32 GPIO 寄存器開發

🔧 ?一、核心寄存器概覽? ?寄存器??功能??位寬??關鍵位域??GPIOx_CRL/CRH?配置引腳模式(輸入/輸出/復用/模擬)和輸出參數32位每4位控制1個引腳:CNF[1:0](模式) MODE[1:0](速度&am…

powershell 獲取 用戶及進程列表

在PowerShell中獲取用戶的進程列表,可以通過幾種方法實現。以下是一些常見的方法: 方法1:使用Get-WmiObject Get-WmiObject命令可以用來查詢Windows Management Instrumentation (WMI)數據庫,從而獲取關于進程和用戶的信息。 # …

量化面試綠皮書:15. 假幣一

文中內容僅限技術學習與代碼實踐參考,市場存在不確定性,技術分析需謹慎驗證,不構成任何投資建議。 15. 假幣一 有 10個袋子,每個袋子里有 100個相同的硬幣。 在除一個以外的所有袋子中,每枚硬幣重10 克。 然而&#x…

Java求職者面試:Spring AI、MCP、RAG、向量數據庫與Embedding模型技術解析

Java求職者面試:Spring AI、MCP、RAG、向量數據庫與Embedding模型技術解析 第一輪:基礎概念問題 1. 請解釋Spring AI是什么?它與傳統Spring框架有何不同? Spring AI是Spring生態系統的一部分,專注于人工智能和機器學…

tp框架導出excel的時候報錯:unexcepted identifier “Closure“,excepting variable

記錄一個簡單的錯誤。 背景 用的是PhpOffice/PhpSpreadsheet 在本地環境下是可以正常導出excel的。但是線上就不行。 就會報錯unexcepted identifier “Closure”,好像是不能用匿名函數。 首先 本地可以正常導出,然后服務器上不可以。看了各種日志。ph…

[Java惡補day24] 74. 搜索二維矩陣

給你一個滿足下述兩條屬性的 m x n 整數矩陣: 每行中的整數從左到右按非嚴格遞增順序排列。 每行的第一個整數大于前一行的最后一個整數。 給你一個整數 target ,如果 target 在矩陣中,返回 true ;否則,返回 false 。 …

解鎖VSCode:從入門到精通的全攻略

目錄 一、VSCode 初相識二、安裝與基礎設置2.1 下載安裝2.2 基礎設置三、核心功能深度剖析3.1 強大的代碼編輯3.2 高效的版本控制集成3.3 實用的調試工具四、插件擴展,拓展無限可能4.1 插件市場探秘4.2 必備插件推薦五、個性化定制,打造專屬開發環境5.1 快捷鍵設置5.2 用戶代…

RFC4291-IPv6地址架構

RFC4291 IP Version 6 Addressing Architecture Author:Once Day Date:2025年6月15日 本文翻譯自RFC 4291 - IP Version 6 Addressing Architecture 這篇文章總結了IPv6的基礎概念,屬于IPv6協議入門內容。 文章目錄 RFC4291 IP Version 6 …

基礎數據結構第03天:順序表(實戰篇)

目錄 求奇數的乘積 數值統計 青年歌手大獎賽_評委會打分 猜數字 拿硬幣 值相等的最小索引 最大連續1的個數 差的絕對值為K的數對數目 數組中兩元素的最大乘積 數組元素和與數字和的絕對差 K個元素的最大和 等差三元組的數目 移除元素 基于排列構建數組 數組串聯…

10.OpenCV—聯合QT界面顯示

1.顯示在graphicsView控件上 .h文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>#include <QGraphicsPixmapItem> //1.聲明頭文件 namespace Ui { class MainWindow; }class MainWindow : public QMainWindow {Q_OBJECTpublic:explicit Ma…

ChromaDB深度技術研究報告

第一章: ChromaDB核心概念與架構 1.1 向量數據庫:新一代AI應用基石 向量數據庫是為存儲、管理和搜索向量嵌入(Vector Embeddings)而專門設計的數據庫系統。在高維空間中,向量嵌入是數據(如文本、圖片、音頻等)的數值表示。向量數據庫的核心能力在于,它能夠高效地執行相…

react 自定義狀態管理庫

核心實現原理 &#xff1a; 全局狀態容器&#xff1a;維護單一狀態源 訂閱機制&#xff1a;組件訂閱狀態變化 狀態更新調度&#xff1a;通過 Hooks 觸發組件重渲染 基礎版實現–核心代碼 // 1. 創建全局狀態存儲 const createStore (initialState) > {let state initial…