标签: java spring caching transactions
在执行多次方法时使用Spring注释(@Transactional和@Cacheable)时出现性能问题,例如:BookDao.getBookById(int id)。
@Transactional
@Cacheable
BookDao.getBookById(int id)
在调试日志记录中,我意识到Spring在搜索缓存中的值之前正在创建事务。之后我尝试将@Cacheable注释移动到服务层:BookService.getBookById(int id),然后我再次测试......一切正常!
BookService.getBookById(int id)
有人能告诉我这是一个功能还是一个bug? Spring在创建事务后会查看缓存吗?