在对我们的应用程序进行负载测试时,我注意到如果您使用 @Transactional 和 @Cacheable 注释,休眠总是会创建一个数据库事务。有没有简单的方法来防止这种情况?在 spring 中解决这个问题的一种更简单的方法是使用以下类/接口
- 服务层接口
- 可缓存的注释类,它只是一个代理/转发到
- 事务注解实现类
会发生以下情况
呼叫 1:
- 事务被创建
- 类方法被调用
- 结果缓存并返回
呼叫 2:
- 事务被创建
- 缓存的结果被返回
首选结果应该是:
呼叫 1:
- 事务被创建
- 类方法被调用
- 结果缓存并返回
呼叫 2:
- 缓存的结果被返回