@CacheEvict必须作用在走代理的方法上,并且必须直接调用,间接调用的方法也无效。
必须直接调用case A部分的代码,B和C都不会执行清除动作
public interface itf{
void test();
}
@Service
public class itfimpl implements itf {
//case A
@Override
@CacheEvict(value = {"xxx"}, allEntries = true)
public void test(){
subTest();
}
//case B
//@CacheEvict(value = {"xxx"}, allEntries = true)
public void subTest(){
}
//case C
//@CacheEvict(value = {"xxx"}, allEntries = true)
public void otherTest(){
}
}
参考文献:
https://blog.csdn.net/qq_36698672/article/details/88887108