1.2 关于登录业务流程
说明: 当用户完成登录时,前端系统会向后端进行访问.后端服务器经过数据库查询.如果查询正确 则返回token密钥信息. 如果查询失败 说明用户名和密码错误 返回null
1.5 md5加密算法
MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321 标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。
常识性问题:
1.如果数据相同 算法相同 结果必然相同.
2.如果数据不同 算法相同 结果可能相同. hash碰撞问题.
规则:
数据可以穷举查询.但是不可以被破解.
* 思路:
* user数据:User(id=null, username=abc, password=123, phone=null, email=null, status=null)
* 1.将密码明文,转化为密文 sha1/md5算法/md5hash
* 2.根据用户名和密码查询用户信息
* 3.有结果: 返回token UUID
* 4.没有结果: 返回null
2. 用户首页跳转
2.1 业务说明
说明: 当用户登录成功之后,需要跳转到系统首页中.
url地址: /home
组件地址: Home.vue组件
3. 左侧菜单列表展现
3.1 表设计
原理说明: 左侧菜单划分为3级.但是显示时只显示2级.
一级菜单获取: select * from rights where parent_id = 0
二级菜单获取: select * from rights where parent_id = 一级ID
三级菜单获取: select * from rights where parent_id = 二级ID
* 思路: 获取1-2级的菜单信息.
* 一级菜单: parent_id = 0
* 二级菜单: parent_id = 一级ID
* 将二级菜单数据,封装到一级菜单的children属性
* 方案一: 通过代码 先查询一级数据,再查询二级数据,之后完成封装
* 方案二: 通过关联查询,利用mybatis实现数据一对多的封装.
3.4 左侧菜单列表业务接口
- 请求路径 /rights/getRightsList
- 请求类型 GET
- 请求参数 无
- 响应数据 SysResult对象
关于前后端调用说明
前端服务器
说明1: 前端服务器通过脚手架的工具 启动了tomcat服务器. 端口号默认为8080/8081 该服务器中只部署前端项目.
说明2: 前端的数据从后端服务器中获取的. http://localhost:8091 2个不同类型的服务器.
性能问题:
前端和后端谁对服务器性能(处理速度更快)要求更好: 后端服务器.
前端和后端谁对服务器并发能力要求更好 前端服务器
关于一级/二级缓存说明
一级缓存: 在同一个SqlSession内 执行多次业务调用 数据共享.
二级缓存: 在同一个SqlSessionFactory内 生产的多个SqlSession 实现数据共享. 多线程操作
注意事项: 无论使用一级缓存/二级缓存 POJO对象必须实现序列号接口
序列化本质:
由多个线程操作引用同一个对象时,必须序列化.
关于Spring 自动注入异常的说明
修改IDEA 数据校验 将√号去除即可.
1.旧版本配置