cacheable中的condition和unless
其中condition是对入参进行判断,符合条件的缓存,不符合的不缓存。
其中unless是对出参进行判断,符合条件的不缓存,不符合的缓存。
常见用法如:
@Cacheable(cacheNames = "fm_analysis_safe_replay", unless = "#result.status !='0000'")
public BaseRsp<FaultSummaryRateVo, String> cacheFailuresCheckRate(@ApiParam(value = "月份", example = "2021-08") @RequestParam String date) throws ParseException {
if (!FunctionUtil.getMonthFlag(date)) {
return FakeServiceStandardUtil.createErrorRspV2(WebTypes.MSG_EINVAL, MONTH + date);
}
return FakeServiceStandardUtil.createSuccessRspV2(Collections.singletonList(iFailuresCheckRateService.getFailuresCheckRate(date)));
}
意思为,除非result中status不为0000,否则就缓存,比较饶人换句话就是说,只缓存result中status为0000的结果