0

JCache の Ehcache 実装を使用しています。

としましょう、私はクラスを持っていTestます。このクラスには、 と の 2 つのメソッドがmethodAありmethodBます。methodB注釈があり@CacheResult(cacheName = "methodB")ます。

methodBこの情報から、メソッドをキャッシュしたいのでmethodA、このキャッシュを使用する必要があると推測できます。

しかし...うまくいきません。同じクラスのメソッドを使用している場合、このアノテーションがインターセプターを起動していないようです。クラスを作成してTest2メソッドをこのクラスに移動すると機能しますがmethodB、予想どおり、このメソッドの結果はキャッシュされます。

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

4

1 に答える 1

2

今のところ、それは不可能に思えます-CacheResult注釈に固執する場合。

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

于 2016-07-23T16:49:28.237 に答える