spring と ehcache を統合する必要があり、blockingCacheパターンで実装しようとしています
<ehcache:annotation-driven/>
shared (デフォルト) および methodの self-populating-cache-scopeには 1 つのオプションがあります。違いは何ですか?
selfPopulatingフラグ付きの注釈@Cacheableもあります
私がいくつかの投稿で読んだことによると
共有が使用されると、インスタンスが1つだけ作成され、同じキャッシュ名が使用されるたびに同じインスタンスが使用されるため、 1つのメソッドに対してselfPopulatingフラグをtrueとして使用すると、
selfPopulating フラグが true に設定された @Cacheable で注釈が付けられた 他のメソッドにアクセスしようとするすべてのスレッドは保留状態になりますが、これは望ましくありません
<ehcache:annotation-driven/>
一方、self-populating-cache-scope = methodの場合、 @Cacheable で注釈が付けられたすべてのメソッドに対して個別のインスタンスが作成され、 selfPopulating フラグが true に設定されているため、問題は発生しません。
しかし、この場合、@TriggerRemoveを使用して要素を削除しようとすると、@Cacheable で使用されるキャッシュ名を指定すると、それらの個別のインスタンスのそれぞれを検索して値を見つけますか? これはオーバーヘッドではありませんか?