springboot页面缓存和url缓存实例详解编程语言

@Autowired 
    RedisService redisService; 
     
    @Autowired 
    GoodsService goodsService; 
     
    @Autowired 
    ThymeleafViewResolver thymeleafViewResolver; 
     
    @Autowired 
    ApplicationContext applicationContext; 
     
    /** 
     * 商品列表 
     * */ 
    @RequestMapping(value="/to_list", produces="text/html") 
    @ResponseBody 
    public String list(HttpServletRequest request, HttpServletResponse response, Model model,MiaoshaUser user) { 
        model.addAttribute("user", user); 
        //取缓存 
        String html = redisService.get(GoodsKey.getGoodsList, "", String.class); 
        if(!StringUtils.isEmpty(html)) { 
            return html; 
        } 
        List<GoodsVo> goodsList = goodsService.listGoodsVo(); 
        model.addAttribute("goodsList", goodsList); 
//         return "goods_list"; 
        SpringWebContext ctx = new SpringWebContext(request,response, 
                request.getServletContext(),request.getLocale(), model.asMap(), applicationContext ); 
        //手动渲染 
        html = thymeleafViewResolver.getTemplateEngine().process("goods_list", ctx); 
        if(!StringUtils.isEmpty(html)) { 
            redisService.set(GoodsKey.getGoodsList, "", html);// 渲染成功更新缓存 
        } 
        return html; 
    }

 

@RequestMapping(value="/to_detail2/{goodsId}",produces="text/html") 
    @ResponseBody 
    public String detail2(HttpServletRequest request, HttpServletResponse response, Model model,MiaoshaUser user, 
            @PathVariable("goodsId")long goodsId) { 
        model.addAttribute("user", user); 
         
        //取缓存 
        String html = redisService.get(GoodsKey.getGoodsDetail, ""+goodsId, String.class); 
        if(!StringUtils.isEmpty(html)) { 
            return html; 
        } 
        //手动渲染 
        GoodsVo goods = goodsService.getGoodsVoByGoodsId(goodsId); 
        model.addAttribute("goods", goods); 
         
        long startAt = goods.getStartDate().getTime(); 
        long endAt = goods.getEndDate().getTime(); 
        long now = System.currentTimeMillis(); 
         
        int miaoshaStatus = 0; 
        int remainSeconds = 0; 
        if(now < startAt ) {//秒杀还没开始,倒计时 
            miaoshaStatus = 0; 
            remainSeconds = (int)((startAt - now )/1000); 
        }else  if(now > endAt){//秒杀已经结束 
            miaoshaStatus = 2; 
            remainSeconds = -1; 
        }else {//秒杀进行中 
            miaoshaStatus = 1; 
            remainSeconds = 0; 
        } 
        model.addAttribute("miaoshaStatus", miaoshaStatus); 
        model.addAttribute("remainSeconds", remainSeconds); 
//        return "goods_detail"; 
         
        SpringWebContext ctx = new SpringWebContext(request,response, 
                request.getServletContext(),request.getLocale(), model.asMap(), applicationContext ); 
        html = thymeleafViewResolver.getTemplateEngine().process("goods_detail", ctx); 
        if(!StringUtils.isEmpty(html)) { 
            redisService.set(GoodsKey.getGoodsDetail, ""+goodsId, html); 
        } 
        return html; 
    }

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/15683.html

(0)
上一篇 2021年7月19日 18:37
下一篇 2021年7月19日 18:37

相关推荐

发表回复

登录后才能评论