Day_3

1. HttpClient

HttpClientApache的一个子项目,是高效的、功能丰富的支持HTTP协议的客户端编程工具包

作用:发送HTTP请求, 接受相应数据

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.13</version>
</dependency>

发送请求步骤

创建HttpClient对象

创建Http请求对象

调用HttpClientexecute方法发送请求

GET方式请求

POST方式请求 

封装

封装到 common 里的工具类 HttpClientUtil 


2. 微信登录

微信登录 官方手册

代码开发

配置微信登录配置项

为微信用户生成jwt令牌时使用的配置项

登录方法

wxLogin 接口思路:

  1. 获取当前微信用户的 openid (openid 在 user 表里是唯一索引)
  2. 判断 openid 是否在数据库里
  3. 如果不在,则创新新用户并保存到数据库
  4. 返回当前的用户信息

拦截用户端发送的请求并校验

编写拦截器JwtTokenUserInterceptor

注册拦截器 


3. 用户端商品查询

商品浏览查询

接口设计

  1. 查询分类
  2. 根据分类 id 查询菜品
  3. 根据分类 id 查询套餐
  4. 根据套餐 id 查询包含的菜品

代码开发

这里是选择导入提供的相应代码


4. 缓存(RedisTemplate)

查询的请求发的比较频繁,就考虑将查询的数据缓存在 redis 减少数据库的查询压力

实现思路 

  1. 每个分类下的菜品保存一份缓存数据
  2. 数据库里的菜品数据有变更时清理缓存数据

代码实现

存缓存

清理缓存 

在数据库发生变动的时候,要清楚当前有关联的缓存


5. 缓存(Spring Cache)

Spring Cache 是一个框架,实现了基于注解的缓存功能

只需要简单地加一个注解,就能实现缓存功能

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-cache</artifactId>      
    <version>2.7.3</version>
</dependency>

常用注解

注解

说明

@EnableCaching

开启缓存注解功能,通常加在启动类上

@Cacheable

在方法执行前先查询缓存中是否有数据,如果有数据,则直接返回缓存数据;如果没有缓存数据,调用方法并将方法返回值放到缓存中

@CachePut

将方法的返回值放到缓存中

@CacheEvict

将一条或多条数据从缓存中删除

实现思路

  • 导入Spring CacheRedis相关maven坐标
  • 启动类上加入@EnableCaching注解,开启缓存注解功能
  • 在用户端接口SetmealController list 方法上加入@Cacheable注解
  • 管理端接口SetmealControllersavedeleteupdatestartOrStop等方法上加入CacheEvict注解

代码开发

存缓存

在用户端接口SetmealController list 方法上加入@Cacheable注解

清理缓存

管理端接口SetmealControllersavedeleteupdate等方法上加入CacheEvict注解 

选择性删除缓存

全删缓存


6. 购物车 

添加购物车

实现目的

  1. 暂时存放所选商品的地方
  2. 选的什么商品
  3. 每个商品都买了几个
  4. 不同用户的购物车需要区分开

代码开发

代码比较常规

一条购物车信息 == 一个用户选择的菜品(或套餐)及对应数量

注意点:

在添加购物车的时候,进行条件查询,判断是否已经存在该条购物车信息

如果已经存在该购物车信息,则直接进行 数量 + 1,只有在不存在的时候才进行添加数据

其中添加购物车数据的时候,也需要进行判断加入的是套餐还是菜品

查看购物车

直接根据当前登录用户的 userId 去数据库查询,该数据库变化频繁,不建议采用缓存

代码开发

清空购物车

清空当前用户 userId 对应的数据库所有信息

删除购物车一条信息

实现思路

  1. 根据前端传入的 shoppingCartDTO 和当前登录用户的 userId 去数据库查询对应的数据
  2. 查到的一定是一条数据,否则是错误
  3. 判断查到的数据当前的 Number 是否为  1 
  4. 如果为 1 则直接删除该条信息
  5. 否则该条信息的 Number - 1

代码实现

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值