2015-12-26 76 views

回答

3

documentation is pretty explicit about that

在代理模式(这是默认值),只有外部方法调用通过代理来在被截获。这意味着,即使被调用的方法标记为@Cacheable,实际上,调用目标对象内的方法调用目标对象的另一个方法也不会导致实际的缓存 - 考虑将aspectj模式用于这个案例。

您的内部方法调用完全绕过代理。 query2也应该有@Cacheable。如果你不想这样做,你需要使用AspectJ模式。

+0

我真的忽略了这个重要的一点,非常感谢! – chenzero