サービスXXXからの読み取り操作を実行するクラスがあります。これらの読み取り操作は最終的にDB読み取りを実行し、クラス内の各メソッドの結果をメソッドごとに指定されたカスタムキー用にキャッシュすることで、これらの呼び出しを最適化します。Springでの自動キャッシュ無効化
Class a {
public Output1 func1(Arguments1 ...) {
...
}
public Output2 func2(Arguments2 ...) {
...
}
public Output3 func3(Arguments3 ...) {
...
}
public Output4 func4(Arguments4 ...) {
...
}
}
私は、これらの方法のそれぞれのキャッシュ結果の春caching(@Cacheable annotation)
を使用して考えています。
しかし、私はキャッシュの無効化をいくつかのメカニズム(ttlなど)によって自動的に行うようにしたいと思います。 Springキャッシングで可能ですか? @CacheEvict
注釈があることを理解していますが、その削除が自動的に行われるようにしたいと思います。
ご協力いただければ幸いです。
基本的なスプリングキャッシングの設定をttlに設定できますか?私はhttp://docs.spring.io/spring/docs/current/spring-framework-reference/html/cache.htmlにある文書にttl関連の設定が見つかりませんでした –
こんにちは@KumarMrinal私は残念ですあなたがSpringによって設定されたデフォルトのキャッシュはConcurrentHashMapであり、これはTime Liveをサポートしていません。つまり、あなたがサポートしている別のプロバイダに切り替える必要があります。前述のEHCacheは、非分散型キャッシュ・プロバイダにとっては良い選択です。 –
@AlexanderPetrov素晴らしい回答です。キャッシュプロバイダ(あなたの答えで言及したEhCacheのような)へのリンクと、引用文を入手したSpringリファレンスドキュメントへのリンクを提供する方が良いでしょう。 –