【问题标题】:Spring Cacheable implementing classSpring Cacheable 实现类
【发布时间】:2018-08-09 18:27:22
【问题描述】:

我正在尝试以某种方式“调试”我的使用 Spring Boot 缓存注释的应用程序,为此我想知道如何找到实际实现接口 Cacheable、CacheConfig 等的类。

我的想法是确认缓存正在被填充、清空等。

非常感谢您的帮助,

【问题讨论】:

  • 这个答案可以帮到你:stackoverflow.com/a/24229350/2387977
  • 谢谢,但如果我可以调试并以某种方式“实时”查看缓存内容等,对我来说可能会更简单

标签: java spring-boot


【解决方案1】:

@Cacheable 用于划分可缓存的方法 - 即,将结果存储到缓存中的方法,因此在后续调用(使用相同的参数)时,无需实际返回缓存中的值执行方法。在最简单的形式中,注解声明需要与被注解的方法关联的缓存名称:

@Cacheable("books")
public Book findBook(ISBN isbn) {...}

在上面的sn-p中,方法findBook与名为books的缓存相关联。每次调用该方法时,都会检查缓存以查看调用是否已经执行并且不必重复。虽然在大多数情况下,只声明了一个缓存,但注释允许指定多个名称,以便使用多个缓存。在这种情况下,将在执行该方法之前检查每个缓存 - 如果至少命中一个缓存,则将返回关联的值。

有关更多信息,请阅读以下内容;

https://docs.spring.io/spring/docs/current/spring-framework-reference/integration.html#cache

Spring 使用ConcurrentHashMap 作为默认缓存实现。

public class ConcurrentMapCache extends AbstractValueAdaptingCache

另一方面,如果您需要不同的缓存,那么 Spring 还带有一个内置的 ehCache 包装器。好消息是 Spring 的缓存实现之间的交换很容易。理论上,这都是配置问题。

【讨论】:

  • 谢谢我知道它的工作方式,但我想知道运行时缓存内容等如何,我相信这可以通过 springboot/eclipse 调试模式实现,但是我不知道实现类
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-30
  • 2012-12-25
  • 2015-04-15
  • 2019-05-08
  • 1970-01-01
  • 2011-12-20
  • 2019-12-02
相关资源
最近更新 更多