Какова политика @Cacheable в Springboot? - PullRequest
0 голосов
/ 31 января 2019

Объяснение:

У меня было приложение с несколькими страницами, включая 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);
        }

    }

Как вы можете видеть, я кэшировал данные домашней страницы.Когда я пишу купон или другие данные на домашней странице, мне нужно очистить данные домашней страницы.Есть ли лучшая практика или какой-то документ по этому поводу?

...