【发布时间】:2020-12-06 21:20:51
【问题描述】:
我有一个简单的 Spring Web 应用程序,它连接到 Postgre 数据库。我的问题是我在 dao 中有方法,用 @Cacheable 注释。如果方法进入数据库,或者它的结果是从缓存中加载的,有没有办法记录?例如,我想查看以下日志:
该值是从 db.... 中检索的 该值是从缓存中检索的
【问题讨论】:
-
检查这是否回答了您的问题 - stackoverflow.com/questions/37281139/… ?
-
你真正想要的是metrics; Spring Boot 已经与 Micrometer 集成,后者支持缓存抽象。
-
这听起来有点奇怪,但如果你想这样做,那么有办法做到这一点。您可以通过覆盖弹簧的默认行为来做到这一点。 Spring 在内部使用
Simple Cache Resolver来拦截请求并检查缓存中是否存在该键的数据。您可以从SimpleCacheResolver覆盖它,如果它返回数据,则记录您想要的语句。
标签: java maven logging caching spring-cache