Springboot中@Cacheable的政策是什么?

时间:2019-01-31 03:48:05

标签: spring-cache

说明:

我有一个应用程序,其中某些页面包括homepagecategorycoupon等。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);
        }

    }

如您所见,我缓存了主页数据。当我在首页内写优惠券或其他数据时,我需要清除首页数据。是否有最佳实践或相关文档?

0 个答案:

没有答案