検索

1.3. Spring キャッシュアノテーション

download PDF

@Cacheable および @CacheEvict アノテーションは、メソッドにキャッシュ機能を追加します。

@Cacheable
戻り値をキャッシュに保存します。
@CacheEvict
古いエントリーを削除してキャッシュサイズを制御します。

@Cacheable

Book オブジェクトを例ととすると、BookDao#findBook(Integer bookId) などのメソッドのデータベースから読み込み後に各インスタンスをキャッシュしたい場合は、以下のように @Cacheable アノテーションを追加します。

@Transactional
@Cacheable(value = "books", key = "#bookId")
public Book findBook(Integer bookId) {...}

上記の例では、findBook(Integer bookId)books という名前のキャッシュに保存されている Book インスタンスを返す場合。

@CacheEvict

@CacheEvict アノテーションを使用すると、books キャッシュ全体をエビクトするか、特定の #bookId に一致するエントリーのみを削除するかどうかを指定できます。

キャッシュエビクション全体

deleteAllBookEntries() メソッドに @CacheEvict のアノテーションを付け、以下のように allEntries パラメーターを追加します。

@Transactional
@CacheEvict (value="books", key = "#bookId", allEntries = true)
public void deleteAllBookEntries() {...}

エントリーベースのエビクション

deleteBook(Integer bookId) メソッドに @CacheEvict のアノテーションを付け、以下のようにエントリーに関連付けられたキーを指定します。

@Transactional
@CacheEvict (value="books", key = "#bookId")
public void deleteBook(Integer bookId) {...}
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.