说明:
我有一个应用程序,其中某些页面包括homepage
,category
,coupon
等。homepage
有一些热门类别和一些热门优惠券。为了提高性能,我使用@Cacheable
缓存一些数据。这是一些解释它的代码。
@RestController
public class HomeController {
@Autowired
private CouponService couponService;
@Autowired
private CategoryService categoryService;
@GetMapping("/homepage")
// cache the homepage data, include coupon and category data.
@Cacheable(value="homepage")
public String homepage(){
// get 4 hot coupon
List l1 = couponService.hotList(4);
// get 8 hot category
List l2 = categoryService.hotList(8);
HomepageVo vo = new HomepageVo(l1,l2);
return vo.toString();
}
}
@Service
public class CouponService {
@Autowired
private CouponMapper couponMapper;
@Cacheable(value="coupon", key="#couponId")
public List getMethod(Integer couponId){
List list = new ArrayList();
// some code
return list;
}
@CacheEvict(value="coupon", allEntries=true)
// clear coupon cache
public List setMethod(Coupon coupon){
return couponMapper.insert(coupon);
}
}
如您所见,我缓存了主页数据。当我在首页内写优惠券或其他数据时,我需要清除首页数据。是否有最佳实践或相关文档?