缓存切面:[通知+目标方法调用] 缓存操作执行过程: 1)如果是同步调用[sync=true],则首先尝试从缓存中读取数据,读取到则直接返回: 否则执行目标方法,将结果缓存后返回. 2)如果不是同步调用[sync=false,默认] 2-1)执行 beforeInvocation=true 并满足条件的 CacheEvict 操作, 2-2)从缓存操作上下文中根据缓存键读取数据[存在 @Cacheable 注解], 缓存未命中:则收集 @Cacheable 缓存写入请求,并执行目标方法. 缓存命…