如何从同一个类缓存其他方法?

时间:2016-07-05 14:38:18

标签: java caching ehcache jcache

我正在使用Ehcache实现JCache。

让我们说,我是班级Test。在本课程中,我有两种方法:methodAmethodBmethodB的注释为@CacheResult(cacheName = "methodB")

根据这些信息,您会猜到我希望缓存方法methodBmethodA应该使用此缓存。

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

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

1 个答案:

答案 0 :(得分:1)

至于现在,似乎不可能 - 如果我们坚持CacheResult注释。

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