一、项目启动
项目使用的是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
**