Объяснение:
У меня было приложение с несколькими страницами, включая 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);
}
}
Как вы можете видеть, я кэшировал данные домашней страницы.Когда я пишу купон или другие данные на домашней странице, мне нужно очистить данные домашней страницы.Есть ли лучшая практика или какой-то документ по этому поводу?