Spring 缓存之 @Cacheable

By | 2025年8月19日

Table of Contents

不缓存 null

@Cacheable(cacheNames = "user", unless = "#result == null")

#result 代表 方法执行的返回值。
unless 表示 满足条件时,不将结果放入缓存。

注意点

  • 被 @Cacheable 注解标记的方法,通常必须是 public 方法。
  • 如果一个被 @Cacheable 标记的方法(如 findUserById)在同一个类中被另一个方法直接调用,那么 缓存将不会生效!这是因为 Spring 的 @Cacheable 是通过 AOP(面向切面编程) 实现的,底层默认使用 JDK 动态代理 或 CGLIB 代理。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注