总结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注解将仓库注入到实现类中
总结springboot微信点餐项目_第1张图片
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
总结springboot微信点餐项目_第2张图片
在项目中要有随时记录日志的思想
在这里插入图片描述
其中{}是占位符,可以定义一个异常枚举类来接受所有异常值
总结springboot微信点餐项目_第3张图片

返回给前端

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

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

Gson

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

freemarker模版引擎

总结springboot微信点餐项目_第4张图片

缓存的使用

@Cacheable
@Cacheput
@CacheEvict

分布式锁

setnx 加锁
setandget 解锁

ab压测工具

ab -n 100 -c 100 ‘url’

websocket消息推送

总结springboot微信点餐项目_第5张图片
总结springboot微信点餐项目_第6张图片

总结springboot微信点餐项目_第7张图片

微信方面

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
**

你可能感兴趣的:(总结springboot微信点餐项目)