我试图以某种方式'调试'我使用spring boot cache注释的应用程序,为此我想知道如何找到实际实现Cacheable,CacheConfig等接口的类 .
我的想法是确认缓存正在填充,清空等 .
非常感谢你的帮助,
@Cacheable 用于划分可缓存的方法 - 即,将结果存储到缓存中的方法,以便在后续调用(具有相同的参数)时,返回缓存中的值而无需实际执行该方法 . 在最简单的形式中,注释声明需要与注释方法关联的缓存的名称:
@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 作为默认缓存实现 .
ConcurrentHashMap
public class ConcurrentMapCache extends AbstractValueAdaptingCache
另一方面,如果你需要不同的缓存,那么Spring还附带了一个内置的 ehCache 包装器 . 好消息是Spring之间的缓存实现之间的交换很容易 . 从理论上讲,这都是配置问题 .
ehCache
1 回答
@Cacheable
用于划分可缓存的方法 - 即,将结果存储到缓存中的方法,以便在后续调用(具有相同的参数)时,返回缓存中的值而无需实际执行该方法 . 在最简单的形式中,注释声明需要与注释方法关联的缓存的名称:在上面的代码片段中,方法findBook与名为books的缓存相关联 . 每次调用该方法时,都会检查缓存以查看调用是否已经执行且不必重复 . 虽然在大多数情况下,只声明了一个缓存,但注释允许指定多个名称,以便使用多个缓存 . 在这种情况下,将在执行方法之前检查每个缓存 - 如果至少有一个缓存被命中,则将返回关联的值 .
有关更多信息,请阅读以下内容
https://docs.spring.io/spring/docs/current/spring-framework-reference/integration.html#cache
Spring使用
ConcurrentHashMap
作为默认缓存实现 .另一方面,如果你需要不同的缓存,那么Spring还附带了一个内置的
ehCache
包装器 . 好消息是Spring之间的缓存实现之间的交换很容易 . 从理论上讲,这都是配置问题 .