問題タブ [spring-cache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Spring EL での配列のコンテンツの使用
Spring のキャッシング機能を使用しています。次のメソッドを呼び出すときに、配列内のすべての値のキャッシュを削除したいと考えていますreceiptObject.resolverIds
。
ここでは最初の要素のみを使用しましたが、配列内のすべての要素に対してこれを一般化したいと考えています。どうすればいいのですか?
java - EhCache : diskStore パス ディレクトリが作成されないのはなぜですか?
私はehcacheで作業しています。Spring @Service メソッドをキャッシュしています:
Spring 構成スニペットは次のとおりです。
これが私のehcache構成です。
Spring @Controller からサービス メソッド getAllDatas を呼び出すと、メソッドがキャッシュされ、2 回目の呼び出しでキャッシュ内の結果ストアが取得されます。私が理解していないのは<diskStore path="C:/TEMP/ehcache"/>
、ehcache.xml で指定が見つからないことです。だから私は2つの質問があります:
質問 1:「C:/TEMP/ehcache」ディレクトリが作成されないのはなぜですか?
質問 2:サービスの結果はどこにキャッシュされますか?
java - 複数のスレッドからアクセスされた場合、Spring @Cacheable はブロックされますか?
マークされたメソッド@Cacheable
が完了するまでに 10 分かかり、2 つのスレッド t1、t2 がメソッドにアクセスする場合。
t1 は時刻 0 にアクセスします (キャッシュ メソッドが初めて実行されます) t2 は時刻 t1+5mins にアクセスします
@Cacheable
これは、t1 が既に操作を開始しており、5 分以内に完了する予定であるため (5 分間実行されているため) 、t2 が約 5 分間データにアクセスしないことを意味しますか、それとも新しい呼び出し@Cacheable
が t2 によって呼び出されるのでしょうか?
java - @Cacheable キーが読み込まれるように CacheLoader を実装する方法
インライン リフレッシュを使用して独自のキャッシュ ローダーを実装しようとしています。ロードされたこのキャッシュは RefreshAheadCacheFactory を使用しています
で説明されているように
http://terracotta.org/documentation/4.1/bigmemorymax/api/refresh-ahead#scheduled-refresh-ahead
&
自分のキーを追加しようとするとエラーが発生します:
エラーは:
キー「myKey」をキャッシュに追加するにはどうすればよいですか?
カスタム キャッシュ ローダーの設定が間違っていると思います。loadAll メソッドの実装方法。ここに私の実装があります:
この HashMap にキー "myKey" を含める必要がありますか?
このメソッドをカスタマイズすると:
}
同じエラーが発生します。
すべてのコードと構成:
spring-ehcache.xml :
my-ehcache.xml :
spring - Iterable コレクションからの CacheEvict
私はこのような2つの方法を持っています:
まず、ユーザーのデポジットを受け取ります
次に、リレーションシップとして 1 つのデポジットを含むタスク エンティティを保存するときに、id によってキャッシュ デポジットから削除したい:
(スプリングデータインターフェース)
しかし、それはうまくいきません。
java - Spring KeyGenerator が機能しない一意のキャッシュ キーを生成する
@Cacheable
注釈を使用してSpringでキャッシュキーが衝突しているときに問題が発生しています。たとえば、次の 2 つの方法を使用します。
これが私のキャッシュ構成で、 akeyGenerator
とcacheManager
Beanを追加しました。
何らかの理由で、キャッシュ キーは常にname
メソッドの結果ではなく、メソッドのパラメーターに設定されるためkeyGenerator.generate(..)
、両方のメソッドが同じキャッシュ結果を返すことになります。
各注釈でキーを手動で指定できることはわかっていますが、@Cacheable
キャッシュしたいすべてのメソッドについては少し広範に思えます。
編集
keyGenerator
注釈内のオプションを@Cacheable
Bean の名前に設定すると、次のように問題が解決することに気付きました。
また、クラスの注釈にkeyGenerator
オプションを設定すると、問題も解決します。@CacheConfig
ただし、これは必要ではないようです。何か不足していますか?