Springアプリケーション追加キャッシュ
2818 ワード
詳細
このバージョンの最もクールな新しい特性は、全方位のキャッシュサポートを導入することです.Spring 3.1は、既存のSpringアプリケーションにキャッシュを追加するサポートを提供し、この特性はアプリケーション自体にとって透明であり、抽象層をキャッシュすることによって、既存のコードへの影響を最小限に抑える.
このキャッシュメカニズムはJavaのメソッドに対して、特定のパラメータによってメソッドが実行されたかどうかを確認し、Springは実行結果をキャッシュし、メソッドを再実行する必要はありません.
キャッシュのサポートは、次の構成で有効にできます(新しいschemaの使用に注意してください).
次に、@Cacheableおよび@CacheEveictを使用してキャッシュを操作できます.
上記のコードはpersonsという名前のキャッシュ領域を宣言し、このメソッドを呼び出すとSpringはキャッシュにpersonIdに対応する値があるかどうかをチェックします.
複数のキャッシュ領域を指定することもできます.アプリケーションで必要な場合は、次のようにします.
複数の領域を指定すると、Springは個々にチェックされ、ある領域に指定値があると返されます.
@CacheEveictは、キャッシュからデータを消去するために使用されます.たとえば、次のようになります.
@CacheEveictはキャッシュをクリアする条件を指定できます.
キャッシュのキーを指定することもできます.
または、条件に基づいてキャッシュするかどうかを決定します.
キャッシュマネージャの構成:
Ehcacheキャッシュベースの構成:
上記の内容が読めない場合は、
このバージョンの最もクールな新しい特性は、全方位のキャッシュサポートを導入することです.Spring 3.1は、既存のSpringアプリケーションにキャッシュを追加するサポートを提供し、この特性はアプリケーション自体にとって透明であり、抽象層をキャッシュすることによって、既存のコードへの影響を最小限に抑える.
このキャッシュメカニズムはJavaのメソッドに対して、特定のパラメータによってメソッドが実行されたかどうかを確認し、Springは実行結果をキャッシュし、メソッドを再実行する必要はありません.
キャッシュのサポートは、次の構成で有効にできます(新しいschemaの使用に注意してください).
...
次に、@Cacheableおよび@CacheEveictを使用してキャッシュを操作できます.
@Cacheable("persons")
public Person profile(Long personId) { ... }
上記のコードはpersonsという名前のキャッシュ領域を宣言し、このメソッドを呼び出すとSpringはキャッシュにpersonIdに対応する値があるかどうかをチェックします.
複数のキャッシュ領域を指定することもできます.アプリケーションで必要な場合は、次のようにします.
@Cacheable({"persons", "profiles"})
public Person profile(Long personId) { ... }
複数の領域を指定すると、Springは個々にチェックされ、ある領域に指定値があると返されます.
@CacheEveictは、キャッシュからデータを消去するために使用されます.たとえば、次のようになります.
@CacheEvict (value = "persons", allEntries=true)
public List listPersons()
@CacheEveictはキャッシュをクリアする条件を指定できます.
キャッシュのキーを指定することもできます.
@Cacheable(value="persons", key="personId")
public Person profile(Long personId, Long groundId) { ... }
または、条件に基づいてキャッシュするかどうかを決定します.
@Cacheable(value="persons", condition="personId > 50")
public Person profile(Long personId) { ... }
キャッシュマネージャの構成:
Ehcacheキャッシュベースの構成:
上記の内容が読めない場合は、