0

我正在使用 JCache 的 Ehcache 实现。

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

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

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

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

4

1 回答 1

2

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

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

于 2016-07-23T16:49:28.237 回答