该项目是由SpringBoot+vue制作的交易平台
本人做了一个交易平台,后端是SpringBoot,前端是Vue。这个电商平台有分商家页面和普通用户页面,后续还会增加一个独属于管理员的页面。这个电商平台通过QQ登录进行注册,并且为每一个注册的的用户分配一个默认好友,可以进行聊天,每一个普通的用户都可以通过申请提交成为一名商家,成为商家之后才可以进行增加自家的商品。
其实本人之前也做过一个前后的耦合的thymeleaf和SpringBoot的商城,后续也曾想过下一个项目是不是该做一个博客,音乐平台,或者是视频网站,最后考虑到,用工具的方法有千千万万,重要的是对工具的了解程度如何,你能不能更加深入的对单个方面有较为深刻的理解,于是这个项目也是一个电商平台,但在实现了前后端分离的同时,还加入了很多新的技术,并且在一些方面有了更为优秀的解决方案。
看文章有时候就和看别人家的注释一样,不一定能快速分清楚对方的注释是关键语句还是在水代码行数,所以前面先列出本人做的项目的特点,节约一下阅读的时间,后面会有较为详细的描述。
实现的模板:基本CRUD和购物车,秒杀商品,搜索,Socket通信,security安全拦截,微服务等。
一些特点:
- 使用了redis,在用户访问商品时候会把商品放入redis缓存器,减少数据库的频繁访问,并且使用redis集群实现数据的安全
- 使用了redis实现了商品的秒杀,对突然间大量的请求会将其放入redis而不放入数据库,等秒杀活动过了一定时间再使用定时任务,慢慢写入数据库,由于redis的单线程保证了秒杀的安全,也减少了数据库的访问压力,后续的云服务还可以通过将商品放入消息队列的方式,进一步提高性能。
- 图片的类型是String,而不是流文件,这里结合了七牛云做图床,实现图片数据库和本地数据库的分离
- 每一个用户会有一个默认的好友,以用来测试socket模块,socket模块实现了用户的实时在线聊天,并且还会保存用户的聊天信息。
- 申请了QQ互联的功能,只需要QQ扫码便可以进行登录,QQ互联是和VUE 进行结合的,会产生一个全局的JWT来保证用户的权限认证,后端的security也是用JWT来和前端进行权限认证
- 搜索模块结合了Elasticsearch,以便于用户进行模糊类型的搜索
- 商品平台里面的数据是使用Jsoup爬虫从京东爬取而来的,并且使用雪花算法为每一个商品生成了一个全局唯一的UID
- 结合eureka以及ribbon实现注册中心和负载均衡,降低访问压力
- SpringBoot (后端)
- MySQL (数据库)
- MyBatis (访问数据库)
- swagger (集成文档)
- SpringSecurity (登录与权限控制)
- JWT (单点登录)
- Jsoup (爬虫,用于补充数据库的数据)
- fastjson (转JSON工具,用于前后端数据交互)
- 七牛云 (图床)(已废除)
- netty-socketio (用于用户之间的通信)
- qq互联 (实现QQ登录)
- redis (中间件,用于数据的缓存)
- elasticsearch (搜索引擎)
- spring-boot-admin (管理后台)
- eureka (微服务的注册中心)
- ribbon (负载均衡)
- docker (容器化)
- Nginx (反向代理)
- aliyunEcs (服务器)
- vue (前端)
- axios (前端api)
- Element-ui (前端UI)