概述
项目开发已经接近尾声,我负责和各同学交流,并整理形成各端的项目结构导图,同时整理项目总体开发思路并进行项目博客的编辑,最后书写下项目的总结报告。
后端模块:
经过与后端同学交流,我了解到了后端10多个模块的各自用处以及模块之间的关系,总结为如下流程图:
1.自定义注解模块:用于与其他业务系统进行对接开发,有的时候为了开发的便捷性以及间接性,会需要开发一些自定义的注解,来实现一些业务。如实现mongodb数据库的自增id以及token的验证。
2.Config模块:用于配制并注册springboot项目中各种自动注入的bean实例,便于其他模块在代码中引用调用。
3.Entity实体类模块:用于存放项目中的实体类,并与数据库中的表一一映射,便于项目对数据库实现增删改查等操作。
4.Mapper模块:主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此。该模块中的每一个方法作为项目中最小的原子操作。
5.Service模块:用于实现最主要的业务逻辑模块,包含业务逻辑接口类以及相应的实现类。Service层的业务实现,具体要调用到已定义的Mapper层的接口,封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性。
6.Controller模块:负责具体的业务模块流程的控制,在此层里面要调用Service层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里面进行。
7.Result模块:由于项目需要制定比较统一的返回接口,所以项目中设置了统一的异常返回处理。所有Controller模块的返回结果均在本模块中定义,在Controller中调用返回。
8.Exception模块:自定义了项目的异常模块,项目中所有抛出的异常均由此模块进行定义,同时本模块可以接受Result模块的参数,将Result模块和Exception模块串联在一起。并实现了全局的异常处理,处理并返回所有异常,返回的结果为Result模块定义。
9.Http模块:本模块封装了get、post等http请求操作,配置了请求的各种基本信息如请求头、响应时间等。主要用于向微信服务器发起http请求获取用户数据。
10.Listener模块:监听器模块,用于实现对数据库操作的监听,在数据库操作的生命周期内对操作的类型和数据进行判断,可用于实现mongdb的collection的id自增,表关联等操作。主要是对Mapper模块中的操作进行监听。
11.Interceptor模块:拦截器模块,本项目中拦截所有接受的请求,和自定义注解模块搭配实现用户身份认证。并直接调用Exception模块驳回所有不符合要求的请求。
12.Util模块:主要定义了一些全局都能够使用的工具类,如从http请求头中获取前端上传的token,根据用户信息生成token,对异常消息的进一步封装并输出到日志中。
小程序端:
各模块解释:
pages目录下是程序各主要页面;icon目录下是程序需要的图片资源;utils目录下是程序需要的JavaScript函数;components目录下是各页面使用的组件文件;app.js是程序的全局JavaScript文件;app.json是程序全局配置文件;app.wxss是程序全局样式文件;剩余两个json文件也都是全局配置文件。
web前端:
骨刻文复现部分:
主要使用了canvas画布,在一个div中包含了4层结构,如图:
除了第二层,其余层的position都设置为absolute,即不占据文档流;因为初始的canvas是透明的,所以在其下方(第三层)的img可以透过第二层而被用户看到;第一层的加载图标是当服务器的图片还未传过来时用来占据页面,提示正在加载。
微信小程序扫码登录部分: