我正在使用Ehcache实现JCache。
让我们说,我是班级Test
。在本课程中,我有两种方法:methodA
和methodB
。 methodB
的注释为@CacheResult(cacheName = "methodB")
。
根据这些信息,您会猜到我希望缓存方法methodB
和methodA
应该使用此缓存。
但是......它不起作用。当我使用同一个类的方法时,似乎这个注释没有触发它的拦截器。但是,如果我创建了类Test2
并将方法methodB
移动到此类 - 那么,正如预期的那样,此方法的结果将被缓存。
如何从同一个类启用缓存方法?
答案 0 :(得分:1)
至于现在,似乎不可能 - 如果我们坚持CacheResult
注释。
这是因为当类通过this
引用而不是CDI使用其方法时,拦截器未正确触发。如果我们想要缓存它们,我们需要使用另一种方法,或者在每个cacheMe
方法中调用一些静态方法,比如说private
。