AOP方法增强自身内部方法调用无效 SpringCache 例子
开启注解@EnableCaChing,配置CacheManager,结合注解@Cacheable,@CacheEvit,@CachePut对数据进行缓存操作
缺点:内部调用,非Public方法上使用注解,会导致缓存无效。&& SpringCache是基于Spring AOP动态代理实现,同一个类中调用类中另一个方法,会导致另一个方法的缓存不能使用!
解决办法:通过再次代理调用(AopContext.currentProxy().getXXX),前提要开启暴露
①
<aop:aspectj-autoproxy expose-proxy="true"/><!—注解风格支持-->
②Spriingboot开启暴露aop代理
例如:
当前方法:
调用另一个方法:
另一个方法: