spring cache功能确实是带来很多方便,但是他的一些缺陷让人头疼。
1、他的cache功能是基于aop的,所以当内部调用方法的时候就不会调用cache方法。
这个也不能说是spring 的问题,总之你需要把内部互相调用的方法分开写然后调用接口的方式调用。
2、key的问题
在清除缓存的时候,你没办法同时清除多个缓存的key
例如:
@cache(value="user")
public User getById(Integer uid);
@cache(value="user")
public User getByName(String name);
当你需要清除的时候,你无法指定多个缓存块。