开启注解@EnableCaChing,配置CacheManager,结合注解@Cacheable,@CacheEvit,@CachePut对数据进行缓存操作

缺点:内部调用,非Public方法上使用注解,会导致缓存无效。&& SpringCache是基于Spring AOP动态代理实现,同一个类中调用类中另一个方法,会导致另一个方法的缓存不能使用!

解决办法:通过再次代理调用(AopContext.currentProxy().getXXX),前提要开启暴露

<aop:aspectj-autoproxy expose-proxy="true"/><!—注解风格支持-->  

②Spriingboot开启暴露aop代理

例如:

当前方法:

调用另一个方法:

另一个方法:

AOP方法增强自身内部方法调用无效 SpringCache 例子的更多相关文章

  1. Vue把父组件的方法传递给子组件调用(评论列表例子)

    Vue把父组件的方法传递给子组件调用(评论列表例子) 效果展示: 相关Html: <!DOCTYPE html> <html lang="en"> < ...

  2. 如何为已有的类没有生成toString的方法增强生成toString方法

    1:只要提到增强,我的第一思路就是代理,动态代理.但是仅仅是一个toString其实没必要使用代理模式了,有点大材小用了(动态代理其实也是最后通过反射生成toString的方法). 2:简单粗暴,可以 ...

  3. Spring的Bean内部方法调用无法使用AOP切面(CacheAble注解失效)

    Spring的Bean内部方法调用无法使用AOP切面(CacheAble注解失效) 前言 今天在使用Spring cache的Cacheable注解的过程中遇见了一个Cacheable注解失效的问题, ...

  4. spring aop无法拦截类内部的方法调用

    1.概念 拦截器的实现原理就是动态代理,实现AOP机制.Spring 的代理实现有两种:一是基于 JDK Dynamic Proxy 技术而实现的:二是基于 CGLIB 技术而实现的.如果目标对象实现 ...

  5. Spring AOP无法拦截内部方法调用

    当在同一个类中,A方法调用B方法时,AOP无法工作的问题 假设一个接口里面有两个方法: package demo.long; public interface CustomerService { pu ...

  6. Spring 内部方法调用失效问题(AOP)

    AOP使用的是动态代理的机制,它会给类生成一个代理类,事务的相关操作都在代理类上完成.内部方式使用this调用方式时,使用的是实例调用,并没有通过代理类调用方法,所以会导致事务失效. 解决办法 方式一 ...

  7. SpringBoot 内部方法调用,事务不起作用的原因及解决办法

    在做业务开发时,遇到了一个事务不起作用的问题.大概流程是这样的,方法内部的定时任务调用了一个带事务的方法,失败后事务没有回滚.查阅资料后,问题得到解决,记录下来分享给大家. 场景 我在这里模拟一个场景 ...

  8. JavaScript文件中调用AngularJS内部方法或改变$scope变量

    需要在其他JavaScript文件中调用AngularJS内部方法或改变$scope变量,同时还要保持双向数据绑定: 首先获取AngularJS application: 方法一:通过controll ...

  9. UnityTips:使用反射调用内部方法拓展编辑器

    大家都知道Unity是一个C/C++的游戏引擎,C#只是Unity提供的脚本层.因此大部分功能都是通过C#来调用底层的C++代码的.而一些朋友可能不知道的是,其实Unity的C#代码中也有很多方法是我 ...

随机推荐

  1. C#语言与变量、数据类型

    一.计算机语言 1.计算机语言包括:C\PHP\Ruby\JAVA\C#\Basi\JS\C++ 2.计算机语言发展史:机器语言——汇编语言——高级语言 二.代码 1.程序始终:Code(编码).Co ...

  2. 项目管理软件 GanttProject 节日表

    项目管理软件 GanttProject 节日表 GanttProject 是一款项目管理软件,对比一些商业项目管理软件一点不差,有些还更强大,比如以下的节假日自动选择. 文件地址在:C:\Progra ...

  3. delphi XML简单处理

    unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System ...

  4. Html 页面载入内容前,显示 loading 效果。

    Html 内容 loading部分: <div id="sys-loading" class=""><div class="spin ...

  5. node升级的正确方法

    本文主要是针对安装了node的用户如何对node进行升级或者安装指定版本:没有安装node的可以参考连接node安装方法 . 安装方法: 1.产看node版本,没安装的请先安装: $  node -v ...

  6. jenkins搭配git 从远程端拉取代码回来执行的问题

    jenkins上git 拉取回来的代码是在 工作区的文件夹里面(默认每次拉取最新的版本下来的)(不是自己本地仓库的那个)  (晕~~,一开始以为是拉取回自己的本地仓库) 找到jenkins git里面 ...

  7. Kettle在windows下分布式集群的搭建

    集群的搭建 我这里用的是kettle7.1版本的 下载解压 我们打开kettle的安装目录,进入到data-integration->pwd目录,找到carte-config-master-80 ...

  8. shell脚本四-三剑客

    Shell编程——三剑客 简介 Grep:默认不支持扩展表达式,加-E或者egrep Awk:支持所有zhengze Sed默认不支持扩展表达式,加-r 2.sed语法格式 Sed 选项 命令 文件( ...

  9. 关于x-shell连接不上本地虚拟机linux

    首先把虚拟机网络模式调成nat模式,用于共享主机的ip地址. 然后再虚拟机输入命令ifconfig查看虚拟机的ip 在windows下ping一下虚拟机的ip确保能ping通,同理在虚拟机下ping主 ...

  10. autocomplete input

    <html> <head> <title>jQuery UI Autocomplete - Combobox</title> <link rel= ...