2016-07-05 4 views
0

私はJCacheのEhcache実装を使用しています。同じクラスの他のメソッドをキャッシュする方法は?

私はクラスTestを持っています。このクラスでは、私は2つの方法:methodAmethodBを持っています。 methodBの注釈は@CacheResult(cacheName = "methodB")です。

この情報から、キャッシュとmethodAにこのキャッシュを使用する必要があると思います。

しかし...動作しません。同じクラスのメソッドを使用しているとき、この注釈がインターセプタを起動していないようです。私がクラスTest2を作成し、メソッドmethodBをこのクラスに移動すると、問題なく動作します。この場合、このメソッドの結果はキャッシュされます。

同じクラスのキャッシングメソッドを有効にするにはどうすればよいですか?

答えて

1

今のところ、CacheResultアノテーションに固執すれば不可能と思われます。

これは、クラスがそのメソッドを使用しているときにインターセプタが正しく起動されないためです(CDIではなく、this参照)。それらをキャッシュしたい場合は、別の方法を使用するか、いくつかの静的メソッドを呼び出す必要があります。privateメソッドの内部にはcacheMeとなります。

関連する問題