使用JCache缓存方法结果
生活随笔
收集整理的這篇文章主要介紹了
使用JCache缓存方法结果
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在JCache中,有一個方便的功能可以透明地緩存方法的結果。 您可以使用@CacheResult注釋托管bean的方法,并且將再次返回第一次調用的結果,而無需再次調用實際方法。
import javax.cache.annotation.CacheResult; // ...public class Calculator {@CacheResultpublic String calculate() {// do some heavy lifting...LockSupport.parkNanos(2_000_000_000L);return "Hi Duke, it's " + Instant.now();} }如果注入了bean并調用了方法calculate ,則結果將在第一次調用后被緩存。 默認情況下,此機制不緩存并返回異常。
我們可以將計算器包含在JAX-RS資源中,如下所示:
@Path("calculation") public class CalculationResource {@InjectCalculator calculator;@GETpublic String calculation() {return calculator.calculate();} }調用該HTTP資源將為所有后續調用返回相同的值。
為了使該示例在Java EE應用程序服務器中運行,我們現在必須聲明負責緩存結果的攔截器。 這是由于EE傘中未包含JCache。 因此,目前需要完成這種小的配置開銷。
如果要在WildFly中運行此示例,請在beans.xml指定攔截器:
<interceptors><class>org.infinispan.jcache.annotation.CacheResultInterceptor</class> </interceptors>WildFly使用Infinispan,該Infinispan也需要以正確的版本添加到pom.xml中。
<dependency><groupId>javax.cache</groupId><artifactId>cache-api</artifactId><version>1.0.0</version> </dependency> <dependency><groupId>org.infinispan</groupId><artifactId>infinispan-jcache</artifactId><version>8.2.4.Final</version> </dependency>翻譯自: https://www.javacodegeeks.com/2017/12/caching-method-results-jcache.html
總結
以上是生活随笔為你收集整理的使用JCache缓存方法结果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win7系统电脑怎么调节屏幕亮度电脑屏幕
- 下一篇: 华为路由Q6评测华为路由器 如何分