【问题标题】:how to cache other methods from the same class?如何缓存同一类的其他方法?
【发布时间】:2016-11-07 10:58:44
【问题描述】:

我正在使用 JCache 的 Ehcache 实现。

可以说,我上课了Test。在这个类中,我有两种方法:methodAmethodBmethodB 有注解@CacheResult(cacheName = "methodB")

从这些信息中你会猜到我想要缓存方法methodBmethodA 应该使用这个缓存。

但是...它不起作用。当我使用同一个类的方法时,这个注释似乎没有触发它的拦截器。如果我创建类 Test2 并将方法 methodB 移动到此类,它仍然有效 - 然后,正如预期的那样,此方法的结果被缓存。

如何启用同一类的缓存方法?

【问题讨论】:

    标签: java caching ehcache jcache


    【解决方案1】:

    就目前而言,这似乎是不可能的——如果我们坚持使用CacheResult 注释。

    这是因为当类通过this 引用而不是通过 CDI 使用其方法时,拦截器未正确触发。如果我们想缓存它们,我们需要使用另一种方式或者只是调用一些静态方法,比如说cacheMe,在每个private 方法中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-26
      • 2017-02-27
      • 1970-01-01
      相关资源
      最近更新 更多