日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用JCache缓存方法结果

發布時間:2023/12/3 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用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缓存方法结果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。