尚筹网技术说明文档
一、尚筹网需求分析
本网站共分为两个模块:后台管理系统和前台会员系统。
后台管理系统:对权限进行管理、业务审核、业务管理;
前台会员系统:发表众筹项目、认购众筹项目。
以下是两大模块的具体技术说明:
1.后台管理系统
采用前后端分离开发;SSM
1.1 环境搭建
(1)使用 Maven 作为构建管理和依赖管理工具。
(2)使用 SpringMVC 作为 Web 层框架。
①普通请求:返回响应体通常为一个页面(Admin数据)
②Ajax 请求:返回响应体通常为一个 JSON 数据(Role数据)
针对以上两种不同的请求,配置不同的异常处理映射
(3)使用 MyBatis 作为持久化层框架。
①使用 MyBatis 的PageHelper插件实现数据的分页显示。
②两种数据:Admin 数据 、Role 数据
(4)使用 Spring 提供的容器管理项目中的组件,组件如下:
①XxxHandler
②XxxService
③XxxMapper
④XxxInterceptor
⑤XxxExceptionResolve
(5)前端技术
①Boostrap 作为前端样式框架
②使用 layer 作为弹层组件
③使用 zTree 在页面上显示树形结构
④借助 SpringMVC 提供的异常映射机制实现项目中错误消息的统一管 理。异常映射两种:基于注解、基于 XML
⑤通过对请求消息头信息的判断在给出异常处理结果时实现了普通请求 和Ajax请求的兼容
1.2 管理员登录
(1)MD5 密码加密,后面换成了SpringSecurity的带盐值的加密。
(2)使用自定义拦截器检查登录状态 ,后面被SpringSecurity接管了。
1.3 管理员维护
(1)使用 MyBatis 的 PageHelper 插件实现分页(Admin 数据)
(2)在页面上使用了Pagination实现数字页码。
(3)在数据库表中给 loginacct 字段添加唯一约束,在保存了重复的 loginacct 时触发异常,从而保证登录账号的唯一 。
1.4 角色维护
(1)以Ajax交互方式实现数据的增删改查操作
1.5 菜单维护
(1)使用 zTree 在页面上显示树形结构
(2)结合 zTree 提供的 API 显示自定义图标
(3)对树形节点进行增删改查操作
1.6 RBAC 模型
(1)Role Based Authentication Control
基于角色的权限控制
1.7 分配资源
(1)给Admin分配Role
(2)给Role分配Auth
1.8 权限控制
(1)使用SpringSecurity接管项目的登录、登录检查、权限验证。
(2)为了使SpringSecurity可以加入到项目中,进行了以下操作:
①改源码:让 SpringSecurity 在初始化时不要查找 IOC 容器,而是在 第一次请求时查找;查找的 IOC 容器也改成了查找 SpringMVC 的 IOC 容器(也就是由 DispatcherServlet的父类 FrameworkServlet 初始化 的 IOC 容器)。
(3)登录验证:将登录表单对接到 SpringSecurity
(4)登录检查:SpringSecurity 内置
(5)全局配置:在 SpringSecurity 配置类中设定
(6)权限规则注解(在handler方法中加入):@PreAuthority
(7)页面标签:对页面局部进行权限限定,实现细粒度权限控制
2 前台会员系统
采用服务器端渲染;SpringBoot+SpringCloud
2.1 搭建环境
SpringBoot+SpringCloud
SpringBoot整合了以下技术:
①SpringSession
②Thymeleaf
③Redis
④MyBatis
⑤SpringCloud
⑥Eureka:注册中心
⑦Feign:远程接口的声明式调用
⑧Ribbon:客户端负载均衡
⑨Zuul:网关,ZuulFilter过滤(检查登录状态)
2.2 用户登录、注册
(1)调用第三方接口给用户手机发送短信验证码
(2)使用 BCryptPasswordEncoder 实现带盐值的加密
(3)使用 SpringSession 解决分布式环境下Session不一致问题
(4)使用 Redis 作为 SpringSession 的 Session 库
(5)在 Zuul 中使用 ZuulFilter 实现登录状态检查
(6)在 Zuul 中配置访问各个具体微服务的路由规则
2.3 发布项目
(1)使
1