[英]Is there any way to enable caching in spring for only one method?
我有一個spring項目,在其中實現了方法級別的緩存。 現在,我需要停止整個項目的緩存。 我通過標志將其設置為false來停止它。
現在,我只想為一種方法啟用緩存。 有什么方法可以只為一種方法啟用緩存嗎?
@Cacheable(value = CacheHelper.APPLICATION_CACHE_NAME, key = "T(ca.sunlife.grs.core.cache.CacheHelper).generateApplicationCacheKey(T(ca.sunlife.grs.core.cache.CacheKey).CACHE_GET_MEMBER,#request.getClientId() + #request.getPlanId() + #request.getMemberNumber() +#request.getMemberIndicator())", unless = "#result== null")
public GetMemberMqResponse getMemberWithCache(GetMemberRequest request) throws Exception {
GetMemberMqRequest mqRequest = getMemberDomainToMqMapper.toMqRequest(request);
GrsLogger.info(this, "MQRequest is:" + mqRequest.getRequestString());
return getMemberMqResponseParser.parseMqResponse(grsMqTransactionOrMockRunner.run(mqRequest));
}
您可以使用NoOpCacheManager並使用Spring Profiles驅動啟用了CacheManager的驅動器。
公共類NoOpCacheManager擴展對象實現CacheManager
一種基本的無操作CacheManager實現,適合於禁用緩存,通常用於在沒有實際后備存儲的情況下支持緩存聲明。 將簡單地接受緩存中未實際存儲的任何項目。
@Bean
public CacheManager cacheManager() {
return new CaffeineCacheManager(); //Example implementation
}
@Bean
@Profile("noCaching")
@Primary
public CacheManager noOpCacheManager() {
return new NoOpCacheManager();
}
您只能將@Cacheable
放在要緩存的方法上,然后將其從不想緩存的方法中刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.