From 2125db64f8d3fc76ecdc2d93c277dd64702913ac Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Mon, 24 Nov 2025 11:40:15 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8B=8D=E7=A9=B9=E5=A4=96=E5=8D=96--springCac?= =?UTF-8?q?he-@Cacheable=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/inmind/controller/UserController.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/springcache-demo - inmind/src/main/java/com/inmind/controller/UserController.java b/springcache-demo - inmind/src/main/java/com/inmind/controller/UserController.java index a2bd541..097ff0a 100644 --- a/springcache-demo - inmind/src/main/java/com/inmind/controller/UserController.java +++ b/springcache-demo - inmind/src/main/java/com/inmind/controller/UserController.java @@ -5,6 +5,7 @@ import com.inmind.mapper.UserMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CachePut; +import org.springframework.cache.annotation.Cacheable; import org.springframework.web.bind.annotation.*; @RestController @@ -44,7 +45,15 @@ public class UserController { userMapper.deleteAll(); } + /* + 需求:在根据id查询用户时,先从redis缓存中查找,如果没有从数据库中查询,并将查询到的数据放入redis中 + 注意:Cacheable在方法体执行之前就要获取redis的key值,所以不能使用#result + + Cacheable底层原理:代理对象,如果能查询到缓存数据,直接就不调用原始方法,如果查询不到缓存,那就执行原始方法,查询数据,将查询到的数据保存到 + 缓存中 + */ @GetMapping + @Cacheable(cacheNames = "userCache",key = "#id")//key的生成 userCache::#id public User getById(Long id){ User user = userMapper.getById(id); return user;