springboot&微信小程序实战_开发说明
项目源代码到此链接
本项目采用的是springboot2.0与微信小程序实现前后端分离。
前台使用微信小程序与es6相关语法
后台使用 mysql数据库、druid连接池、mybatis ORM框架、redis 缓存、Nginx-fastDFS 文件服务器、fastjson 序列化工具、pagehelper和通用mapper 插件,以及 httpClient HTTP协议的客户端编程工具包、bcprov-ext-jdk16 微信授权登录敏感信息界面、最后就时采用 swagger2做RESTful API文档工具
1、数据层:
- mysql 数据库是开放源代码的关系型数据库管理系统(常用)
- Druid 首先是一个数据库连接池,选择它做连接池而不选择其他连接池,是因为它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQLParser。Druid支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQLServer、H2等等。
Druid针对Oracle和MySql做了特别优化,比如Oracle的PSCache内存占用优化,MySql的ping检测优化。
Druid在监控、可扩展性、稳定性和性能方面都有明显的优势。Druid提供了Filter-Chain模式的扩展API,可以自己编写Filter拦截JDBC中的任何方法,可以在上面做任何事情,比如说性能监控、SQL审计、用户名密码加密、日志等等。 - mybatis 为半自动化ORM框架,可以让我们程序员的做一些可控性操作,带来了设计上的灵活,单表操作优秀的一款框架,支持延迟加载等等,当然现在也流行JPA框架,但我更习惯使用前者。因为 mybaits 框架有优秀的插件库,这里我们需要用到 pageHelper、 通用 mapper 插件,方便对数据库的操作
- redis 缓存做不二选择,超高读写速度,加上 redis 只有一个线程,不存在并发问题,有人说那 redis 炸了怎么办,我只能说没有绝对安全的,redis有集群操作,搭建也容易。
2. 服务层:
- httpClient HTTP协议的客户端编程工具包,方便我们进行跨项目请求,在这里,我们是用来微信授权登录转发请求获取用户 openid
- bcprov-ext-jdk16 这里主要是用于微信授权登录请求回来时敏感信息的解密操作。
- fastDFS 文件操作,这里我们主要用于上传图片操作
3.控制层:
- fastjson 序列化操作,主要用来将 null值返回给前端时做一层处理,将null值 转换为空字符串
- swagger2 做RESTful API文档来记录所有接口细节,方便前端开发,这里虽然都是我们自己一个人在做,但是在这里也是为了告诉大家,有这么一回事,swagger2 可以减少后端人员与前端(移动端、pc端、小程序)人员交流