拦截org.springframework.cache.interceptor.CacheInterceptor#invoke的spring aop

2023-12-21

我已经尝试过以下代码,但它不起作用:

@Component
@Aspect
@Order(Integer.MAX_VALUE)
public class CacheAspect {

    @Around("execution(public * org.springframework.cache.interceptor.CacheInterceptor.invoke(..))")
    public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
        //CLASS_CACHE.set(signature.getReturnType());
        return joinPoint.proceed();
    }
}

P.S.我相信CacheInterceptor是一个 Spring 管理的 bean。


经过一番试验,我发现更换内置弹簧CacheInterceptor使用用户定义的可以解决我的问题。 这是代码,以防有人有类似的要求。

  @Configuration
  @EnableCaching
  @Profile("test")
  public class CacheConfig {
    @Bean
    @Autowired
    public CacheManager cacheManager(RedisClientTemplate redisClientTemplate) {
      return new ConcurrentMapCacheManager(redisClientTemplate, "test");
    }

    @Bean
    public CacheOperationSource cacheOperationSource() {
      return new AnnotationCacheOperationSource();
    }

    @Bean
    public CacheInterceptor cacheInterceptor() {
      CacheInterceptor interceptor = new MyCacheInterceptor();
      interceptor.setCacheOperationSources(cacheOperationSource());
      return interceptor;
    }
  }

MyCacheInterceptor.java,与以下具有相同的逻辑CacheAspect:

  public class MyCacheInterceptor extends CacheInterceptor {
    @Override
    public Object invoke(MethodInvocation invocation) throws Throwable {
      Method method = invocation.getMethod();
      //CLASS_CACHE.set(signature.getReturnType());
      return super.invoke(invocation);
    }
  }

内置弹簧CacheInterceptor豆可以在中找到ProxyCachingConfiguration class.

希望能帮助到你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

拦截org.springframework.cache.interceptor.CacheInterceptor#invoke的spring aop 的相关文章

  • Java - 红、绿、蓝获取RGB

    通过致电getRGB int x int y with a BufferedImage对象 得到一个负数 如何将三个不同的值 红色 绿色和蓝色 转换为这个单个负数 使用颜色类 new Color r g b getRGB
  • ListView:防止视图回收

    我有一个使用回收视图的 ListView 我试图阻止视图被回收 所以我使用 setHasTransientState android support v4 view ViewCompatJB setHasTransientState Vie
  • 如果主引用指向 null,WeakReference 或 SoftReference 有何不同

    我正在读关于WeakReference https docs oracle com javase 10 docs api java lang ref WeakReference html and SoftReference https do
  • 无法将 INode 类型值分配给 类型变量。为什么?

    我想知道为什么以下代码无法工作 public static
  • 如何添加 Java 正则表达式实现中缺少的功能?

    我是 Java 新手 作为一名 Net 开发人员 我非常习惯Regex Net 中的类 Java 实现Regex 正则表达式 还不错 但它缺少一些关键功能 我想为 Java 创建自己的帮助器类 但我想也许已经有一个可用的了 那么 是否有任何
  • AWS SDK 2 承担角色

    Bean public DynamoDbClient amazonDynamoDB final AssumeRoleRequest assumeRoleRequest AssumeRoleRequest builder roleSessio
  • 限制 JPQL 中的结果数量

    如何限制从数据库检索结果的数量 select e from Entity e I need only 10 results for instance 您可以尝试像这样给出 10 个要显式获取的结果 entityManager createQ
  • 外部实体更改后索引不更新

    我目前正在开发一个项目 使用 JPA 2 1 保存数据并使用 hibernate search 4 5 0 final 搜索实体 映射类和索引后 搜索工作正常 但是 当我更改值时描述B 类从 someStr 到 anotherStr 数据库
  • 如何使用 Swipe 视图实现 Android TabLayout 设计支持库

    我将使用 android TabLayout 设计支持库 但我不知道如何使用滑动视图 这是我的代码 XML
  • 欧拉项目 45

    我还不是一名熟练的程序员 但我认为这是一个有趣的问题 我想我应该尝试一下 三角形 五边形 六边形 数字由以下生成 公式 三角形 T n n n 1 2 1 3 6 10 15 五边形 P n n 3n 1 2 1 5 12 22 35 六角
  • 如何构建和使用 TimeSeriesCollections

    我想在图表的 X 轴上显示一些日期 并且here https stackoverflow com questions 5118684 jfreechart histogram with dates据说我必须使用 TimeSeriesColl
  • EJB 中 @Stateless 相对于 @Singleton 的真正用例是什么

    如果我正确理解EJB Singleton实际上与普通Java中的Singleton相同 也是spring中的单例 gt 一个实例 每个调用同时通过同一个实例 Stateless 声明一个 bean 它可以 但不得 具有多个实例 但限制是一个
  • Java:java.util.Preferences 失败

    我的程序将加密的产品密钥数据保存到计算机上java util Preferences类 系统首选项 而不是用户 问题是 在 Windows 和 Linux 上 尚未在 OSX 上测试过 但可能是相同的 如果我不运行该程序sudo或者具有管理
  • Java 常量枚举[重复]

    这个问题在这里已经有答案了 可能的重复 理解 Java 中的枚举 https stackoverflow com questions 1419835 understanding enums in java 为什么我们应该使用枚举而不是 Ja
  • 在片段之间切换时底部导航栏会向下推

    在我的活动中 我有一个底部导航栏和框架布局来显示片段 一切正常 但问题是当我开始按顺序从 1 4 移动时 底部导航栏保持在其位置 但当我突然从 4 跳到2 然后底部导航栏就会超出屏幕 当再次单击同一项目时 它就会回到正常位置 该视频将清楚地
  • 如何在 Java 中创建一个带有连字符的值的静态枚举?

    如何创建如下所示的静态枚举 static enum Test employee id employeeCode 截至目前 我遇到了错误 这对于 Java 来说是不可能的 因为每个项目都必须是有效的标识符 并且有效的 Java 标识符可能不包
  • Spring Redis删除不删除key

    我正在尝试删除一个 Redis 键 但由于某种原因它没有删除 但也没有抛出异常 这是我要删除的代码 import com example service CustomerService import com example model Cu
  • 在java中创建一个XML树并将其转换为json对象

    我尝试创建也能够转换为 json 的树 但对于只有一个xpath 当我尝试实现多个 xpath 时 我无法获得所需的输出 这里我分享一下我的实现 private static Document addElemtbypath List
  • 膨胀类 android.support.design.widget.CoordinatorLayoute 时出错

    我正在尝试运行我的应用程序 但不断收到标题中列出的错误 我读过周围的内容 人们说尝试将主题更改为 AppCombat 主题 但这似乎不起作用 以下是我遇到的错误 Process com example jmeyer27 crazytiles
  • 如何让JComboBox中的内容居中显示?

    目前我有这个JComboBox 我怎样才能将其中的内容居中 String strs new String 15158133110 15158133124 15158133458 JComboBox com new JComboBox str

随机推荐

  • 删除 Windows 性能计数器类别

    我有一个自定义性能计数器类别 Visual Studio Server Explorer 拒绝删除它 声称它 未注册或属于系统类别 如果不以编程方式执行此操作 如何删除该类别 有我可以删除的注册表项吗 据我所知 有没办法安全地删除它们 除非
  • WCF:System.Net.SocketException - 通常只允许每个套接字地址(协议/网络地址/端口)使用一次

    我有一个 WCF 服务和一个 Web 应用程序 Web 应用程序以连续方式 也称为轮询 调用此 WCF 服务 在我们的生产环境中 我很少收到此错误 因为 这是一个内部活动 用户不知道何时抛出此错误 无法连接到http localhost Q
  • 键转义序列不适用于 tmux

    我一直在使用iTerm2 and vim一阵子 当我需要使用组合键时 我遇到了一些问题 例如CTRL F10 and SHIFT F10里面一个vim会话在里面运行iTerm2 定义键绑定非常简单 例如
  • JavaScript 中的逻辑运算符——如何使用它们?

    我不明白怎么办 and 适用于布尔值和其他数据类型 你如何使用它们 JavaScript 中的所有值要么是 真 要么是 假 a b计算结果为第一个假操作数 a b计算结果为第一个真实操作数 两个运算符都不会计算返回后的任何操作数 如果所有操
  • 永远运行不完的正则表达式

    我写了一个小而朴素的正则表达式 它应该查找括号内的文本 re search r s name 我知道由于某些原因这不是最好的方法 但它运行得很好 我正在寻找的只是一个解释 解释为什么对于某些字符串 这个表达式开始花费指数更长的时间 然后永远
  • Rails 3 - 多个控制器之间共享的代码 - 将其放在哪里?

    我有两个控制器需要一段代码 但不是全部 这个方法属于哪里呢 我读过有关帮助程序的内容 但那些似乎是用于与视图相关的代码 有人提出了 lib 文件夹 但这似乎离控制器逻辑 太远 我在视图或模型中不需要它 有人遇到过此类问题吗 有三个选项 最简
  • 如何让 Gitlab 6.5 在 Apache 2.4 代理下显示其图标?

    我无法修复由 Apache 2 4 代理的 Gitlab 上的图标 我的失败可能是因为我没有使用乘客 乘客提供了自己的一系列更深层次的问题 但我采取了在代理下运行它的所有步骤 gitlab 我也跑了 sudo u git H bundle
  • 如何重写 CursorAdapterbindView

    我正在尝试显示来自Cursor in a ListView 每行包含一个ImageView and a TextView 我有一个CustomCursorAdapter延伸CursorAdapter in bindView我评估来自光标的数
  • 数据仓库 - 具有多对多关系的缓慢变化的维度

    举个例子 假设我有一个包含两个维度和一个度量的事实表 事实货币表 项目密钥 int PersonKey 整数 现金金额 两个维度的定义如下 DimProject 0 型维度 即静态 项目密钥 int 项目名称 varchar 50 DimP
  • Glide 预加载不保存在缓存中

    我想在向用户显示图像之前预加载图像 我有一个 ViewPager 其中每个页面都是一张图像 当活动开始时 它会调用 Glide with this load uri preload 之后 所有图像都被预加载 理论上 为了测试预加载是否有效
  • 编写一个简单的语法解析器

    这就是我想做的 在 Php 中 给定一个字符串 得到如下结果 a b c a 是一个返回 true 或 false 的函数 这应该给b or c打电话后a a b d e c 同样的原则 最终结果应该是d e or c a b d e c
  • 本地模拟器分布式计数器扩展的实现

    firebase 扩展分布式计数器 https firebase google com products extensions firebase firestore counter可以直接安装到云端并且运行良好 要为应用程序开发新功能 我需
  • 更改 netCDF 文件的网格大小

    假设我有 2 个 netCDF 数据文件 其中包含同一区域 如南美洲 非洲等 的数据 但网格大小不同 另一个网格大小为 0 5 度 x 0 5 度 另一个网格大小为 1 0 度 x 1 0 度 我想将其网格大小增加或减少到不同的值 例如 0
  • Android 7.1.1 上的 DatagramSocket 问题

    我在 Android 7 1 1 N MR1 的 QA Google Pixel 上遇到了一个非常奇怪的问题 在建立TCP连接时 我们使用UDP Server和Client进行握手 QA 报告与 Pixel 的握手不起作用 在探索 Logc
  • CSS 中应该使用什么引号? [复制]

    这个问题在这里已经有答案了 可能的重复 我们应该在 css 背景 url 中使用哪种类型的引号 需要单引号 双引号还是不需要引号 https stackoverflow com questions 2034575 which type of
  • 我应该将公钥存储在哪里?

    我的 Web 应用程序有一个持续运行的服务来将报告发送到 ftp 服务器 该文件需要使用公钥进行加密 因此我的问题是我应该在哪里存储公钥 我只有一个公钥 所以使用高级密钥库似乎有点矫枉过正 我应该在服务器上手动创建一个文件夹并将其存储在其中
  • 使用 ASP.NET 请求用户获取 Log4net 日志条目

    我的 ASP NET 站点正在使用集成身份验证并关闭模拟 我已将 username 添加到 web config 中的 conversionPattern 中 以将用户名添加到每个日志记录条目中 但是 这将使用应用程序池标识的用户名 而不是
  • Vim 编辑器 - zsh shell ipython magic %ed 找不到编辑器

    我正在尝试使用 IPython 中的 ed 魔法来使用 vim 作为编辑器 vim 已安装 ipython 和 ipython qtconsole 都可以工作 zsh 是最新的 与我的 oh my zsh 安装一起更新 我将我的偏好导出到
  • MS Access 交叉表查询参数

    有没有办法像选择查询一样在查询中引用表单的组合 文本框 我通常在选择查询的条件中使用类似的内容 like forms frmMain qTitleofSomething access adds the brackets for me 但这在
  • 拦截org.springframework.cache.interceptor.CacheInterceptor#invoke的spring aop

    我已经尝试过以下代码 但它不起作用 Component Aspect Order Integer MAX VALUE public class CacheAspect Around execution public org springfr