zoukankan      html  css  js  c++  java
  • 取某个商品的基本信息并添加缓存逻辑

    取某个商品的基本信息并添加缓存逻辑 service

    package com.taotao.rest.service.impl;
    
    import org.apache.commons.lang3.StringUtils;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Service;
    
    import com.taotao.common.pojo.TaotaoResult;
    import com.taotao.common.utils.JsonUtils;
    import com.taotao.mapper.TbItemMapper;
    import com.taotao.pojo.TbItem;
    import com.taotao.rest.dao.JedisClient;
    import com.taotao.rest.service.ItemService;
    
    @Service
    public class ItemServiceImpl implements ItemService {
    
        @Autowired
        private TbItemMapper itemMapper;
        
        @Autowired
        private JedisClient jedisClient;
        
        @Value("${REDIS_ITEM_KEY}")
        private String REDIS_ITEM_KEY;
        
        @Value("${REDIS_ITEM_EXPIRE}")
        private int REDIS_ITEM_EXPIRE;
        
        //根据id查询商品信息
        @Override
        public TaotaoResult getItemBaseInfo(Long itemId) {
            TbItem item = null;
            //添加缓存逻辑
            //从缓存中取商品信息,商品id对应的信息
            String key = REDIS_ITEM_KEY+":"+itemId+":base";
            try {
                //从缓存中取商品信息
                String json = jedisClient.get(key);
                //判断是否有值
                if (StringUtils.isNotEmpty(json)) {
                    //如果有值,转成java对象
                    item = JsonUtils.jsonToPojo(json, TbItem.class);
                    //直接返回
                    return TaotaoResult.ok(item);
                }
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        
            //从数据库中查询
            item = itemMapper.selectByPrimaryKey(itemId);
            
            //把商品信息写入缓存(不能影响正常业务逻辑,所以需要给添加缓存的代码加入try catch)
            try {
                jedisClient.set(key, JsonUtils.objectToJson(item));
                jedisClient.expire(key, REDIS_ITEM_EXPIRE);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return TaotaoResult.ok(item);
        }
    }
  • 相关阅读:
    Git 使用vi或vim
    git 添加远程仓库后无法push
    windows下使用IIS创建git服务
    NPOI 操作office、word、excel
    delphi 模拟POST提交数据
    git 用远程覆盖本地
    Delphi中MD5实现方法(转)
    Delphi 操作Ini文件
    Spring系列之——spring security
    Spring系列之——使用模板快速搭建springboot项目
  • 原文地址:https://www.cnblogs.com/libin6505/p/9799485.html
Copyright © 2011-2022 走看看