大学生活一晃而过,就像电影一样。
前言
匆匆忙忙在一个多月的时间里完成了毕业设计,感觉后端和前端收获很多;但是还有很多不完善;比如代码层面:并没有做真实的权限管理,只是通过auth
字段进行区分;功能上面:没有实现客服与管理员的便捷联动,黑名单用户只能使用其他通讯软件进行联系管理进行拉黑。
使用技术
前端
- vue3
- arco pro
- axios
- websocket
后端
- springboot 2.3.7.RELEASE
- mybatis-plus
- java-jwt
- knife4j
- lombok
- spring-boot-starter-security
- spring-boot-starter-validation
- hutool
- spring-boot-starter-websocket
关于收获
前端方面
第一次算是使用 vue 做项目。虽然写了很多页面组件代码,但是框架是基于 arco pro 封装好的后台模板,很多核心逻辑不需要去考虑。
arco pro 感觉很漂亮,也很方便。虽然我没有用过 element ,但是网上有太多使用 element 做的项目,看的审美疲劳。
websocket 是直接使用的原生的,直接 js 中new Websocket()
,当时想使用 socket-io,但是后端当时测试也需要使用 socket-io-server,感觉有些麻烦就没有使用。
后端方面
springboot 是去年跟着实战派书学习的,感觉用的越来越顺手了,不过通过毕业设计,这次又从书里面找到了一些不容易搜索到答案的问题解决办法,常看常新。
mybatis-plus 是第一次用,之前使用的 mybatis ,感觉 mybatis-plus 就像之前在 php 中使用那么方便的操作数据库,不需要 xml ,只需要简单的配置就可以直接使用;并且 mybatis-plus 还已经实现了很多方法,可以直接调用;不过看知乎说大公司里面会有代码审查或者数据库审查,如果有什么错误的 sql 可以在审查的时候自动化检测,感觉挺有道理。
knife4j 国产化 API UI 文档库看起来很漂亮,做项目的时候还可以在文档内直接测试,十分实用。
spring-boot-starter-security 自己没有用的很明白,感觉很复杂,看了很多教程也是一知半解,最后还是看的实战派才实现了自己想要实现的功能 !-_- 。
spring-boot-starter-validation 验证组件相当方便,结合 JSR 规范的注解对参数进行验证,省去了很多代码。
hutool 工具库是在公司才知道的, 常见的功能几乎都有,自己的代码量减少很多,但是功能依旧实现。
spring-boot-starter-websocket 库是拿来与前端进行 websocket 通信的库,通过简单的注解标记方法,就可以用标记的方法去处理对应的事件;搜索了很多教程,都有说 websocket 不支持获取客户端 ip ,需要使用另一个网络库才能够实现获取客户端 ip 。
最后
之前一直打算将项目中用到的技术成功实现进行编写博客,但是担心被爬虫搜索到影响查重就没有整理文章。
整个项目核心就是实现 websocket 协议并将前后端交互的数据格式进行规范,比如通过 type
字段进行区分消息类型,然后通过定义多个字段组合进行完善消息类型,然后对应的去处理。