总结springboot微信点餐项目

一、项目启动

项目使用的是springboot 2.1.7和jpa,其中还有微信支付授权,redis分布式锁和redis缓存的使用,全局异常的处理、websocket消息推送等技术。

二、jpa

jpa全称是java-persistant-API,是一个jdk自带的java持久层API,作用相当于mybatis,是将数据持久化到数据库的工具
使用方法:
1、先创建repository即jpa方法仓库类
在这里插入图片描述
2、创建service层和service实现类层,通过@Autowired注解将仓库注入到实现类中
在这里插入图片描述
3、可以开始调用repository的方法,其中有几个重要的方法

save():保存方法,jap中没有更新方法,要更新的话要在实体类上写上注解@DynamicUpdate和@DynaInsert,
还要先查询一次将要更新的数据先更新,再使用save方法结合@DynamicUpdate(更新有变化的值)注解将数据重新插入
findById().orElse():查找方法,可以通过id查找,也可以在repository仓库类中自定义查找方法
delete:删除方法

jpa的分页

jpa的分页查找使用的是Pageable对象,前端传入page(当前页),size(页显示记录条数)两个参数,在后台使用PageRequest对象封装成Pageable对象。

lambda表达式的简单使用

在这里插入图片描述

三、日志框架Slf4j

使用slf4j需要配置logback.xml
在这里插入图片描述
在项目中要有随时记录日志的思想
在这里插入图片描述
其中{}是占位符,可以定义一个异常枚举类来接受所有异常值
在这里插入图片描述

返回给前端

返回给前端使用ModelAndView对象,可同时封装数据和要返回的页面

补充几个视图对象
dto:在后台各层之间传递的对象
vo:传递给前端的对象视图
ObjectForm:前端传入的表单对象

Gson

通过Gson可以将String类型的json对象转换成list或者map对象
在这里插入图片描述

freemarker模版引擎

在这里插入图片描述

缓存的使用

@Cacheable
@Cacheput
@CacheEvict

分布式锁

setnx 加锁
setandget 解锁

ab压测工具

ab -n 100 -c 100 ‘url’

websocket消息推送

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

微信方面

1、微信的支付需要先授权
可以申请测试号,根据appid和appsecret还有h5证书获取access_token,可以使用github上的best-pay-sdk
2、授权以后拿到用户信息,获取唯一的openid,调用支付接口

最重要的是项目的几个重要的思想

**
1、善用dto、vo、form这几个对象的传递和转化
2、随时记录日志的思想
3、枚举类存储状态和返回值
4、redis分布式锁
5、结合redis的缓存的实现
6、AOP验证微信是否登录
7、全局异常的处理@ControllerAdvice
**

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值