JAVA-缓存机制

本地缓存
  • 继承AbstractBaseLocalCache,并实现相应的抽象方法;
  • 适用于单实例项目或不会经常变化的数据;
  • 代码示例:
/**
 * 仓库信息缓存类
 */
@Service
public class WarehouseCache extends AbstractBaseLocalCache<Long, Warehouse> {

    /**
     * 仓库信息服务
     */
    @Autowired
    private WarehouseFacade warehouseFacade;

    @Override
    protected Integer getExpiredMinutes() {
        return 15;
    }

    @Override
    protected Warehouse query(Long warehouseId) throws PendingException {
        return warehouseFacade.mustGet(WarehouseQuery.builder().id(warehouseId).build());
    }
}

Redis缓存
  • 继承AbstractBaseRedisCache,并实现相应的抽象方法;
  • 适用于多实例项目
  • 代码示例:
/**
 * 商品信息缓存
 */
@Service
public class GoodsCache extends AbstractBaseRedisCache<Long, Goods> {

    /**
     * 商品服务
     */
    @Autowired
    private GoodsFacade goodsFacade;

    @Override
    protected Integer getExpiredMinutes() {
        return 15;
    }

    @Override
    protected Goods query(Long id) throws PendingException {
        return goodsFacade.mustGet(GoodsQuery.builder().id(id).build());
    }

    @Override
    protected int getVersion() {
        return 0;
    }
}

posted @ 2019-06-13 09:42  无语还真  阅读(463)  评论(0编辑  收藏  举报