我有一个简单的spring 3.2 Web应用程序,它连接到MySQL数据库。我的问题很简单:我在dao中有方法,用@Cacheable注释。如果方法转到db,或者从缓存加载结果,有没有办法记录?例如,我想看到以下日志:
Object with id 'x' was retrieved from database at 23:44:30 / 2015....
Object with id 'x' was retrived from cache at...
谢谢
答案 0 :(得分:3)
Spring会在TRACE
级别的ping
类别下注销缓存匹配和未命中。
答案 1 :(得分:0)
如果您要调用持久层,则可以在服务层中显示日志消息。这是我从事某些代码的方法,我正在这样做。当缓存未被命中时,我只获得一个日志条目。
@Cacheable(value = CACHE_PICO)
@Transactional(readOnly = true)
@PostAuthorize(PICO_READ + OR + ALLOWED_FOR_ADMIN)
public Pico get(long id) {
log.info("cached missed for pico {}", id);
return _picoRepository.findOne(id);
}
答案 2 :(得分:-1)