因为@Cacheable注解应用了AOP动态代理,生成代理类,判断缓存中是否存在该key,如果不存在则调用被代理类的标有@Cachable注解的方法,否则不执行。
所以当类A的方法a调用方法b(标有@Cacheable注解),由于类内部的方法互相调用不会生成代理类,所以注解不会生效,也不会进行缓存。
解决方法:
将方法b放入到类B中,然后类A的a方法调用类 B的b方法。
因为@Cacheable注解应用了AOP动态代理,生成代理类,判断缓存中是否存在该key,如果不存在则调用被代理类的标有@Cachable注解的方法,否则不执行。
所以当类A的方法a调用方法b(标有@Cacheable注解),由于类内部的方法互相调用不会生成代理类,所以注解不会生效,也不会进行缓存。
解决方法:
将方法b放入到类B中,然后类A的a方法调用类 B的b方法。