我正在尝试以某种方式“调试”我使用 spring boot 缓存注释的应用程序,为此我想知道如何找到实际实现接口(interface) Cacheable、CacheConfig 等的类。
我的想法是确认缓存正在被填充、清空等。
非常感谢您的帮助,
最佳答案
@Cacheable
用于划分可缓存的方法 - 也就是说,将结果存储到缓存中的方法,以便在后续调用(使用相同的参数)时,缓存中的值无需实际执行该方法即可返回。在最简单的形式中,注解声明需要与注解方法关联的缓存名称:
@Cacheable("books")
public Book findBook(ISBN isbn) {...}
在上面的代码片段中,方法 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 的缓存实现之间进行交换很容易。理论上,这完全是配置问题。
关于java - Spring Cacheable 实现类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49053889/