开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):总结项目技术点(后端技术3)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/667/detail/11564
总结项目技术点(后端技术3)
内容介绍:
一、Spring Security
二、Redis
三、Nginx
四、OAuth2+JWT
五、HttpClient
六、Cookie
七、微信登录
八、微信支付
九、阿里云 OSS
十、阿里云视频点播
十一、阿里云短信服务
十二、Git
十三、Docker+jenkins
一、SpringSecurity
(1)运用
在项目进行整合框架实现权限管理功能
主要有两个过滤器:登录过滤器和认证过滤器
(2)SpringSecurity 框架组成:
认证(登录)和授权(用户授予他的权限)
(3)SpringSecurity 登录认证过程:
第一步输入用户名与密码,输入后查询数据库,查询登录用户权限列表,
第二步成功后将用户名与用户权限列表根据 key 与 value 的形式存入到 redis 中,
第三步根据用户名返回 token 信息,通过 JWT 生成 token 字符串,第四步把 token 放到 cookie 中,在 header 放token 值,
第五步通过 springsecurity 从 token 中获取用户名,从 redis 中获取权限列表,
第六步将所有数据交给 springsecurity,再由 springsecurity 给当前用户赋予权限,可以进行相应操作。
(4)SpringSecurity 代码执行过程:第一步在输入用户名与密码之后先到认证过滤器中的
public Authentication attemptAuthentication(Https 方法获取用户名与密码,
第二步接着调用
public class UserDetailsServiceImpl implements UsersDetailsService 询类,查询后返回 security 对象,表示认证成功,
第三步到达 successful 方法中,获取返回对象,根据对象里面用户名生成 token,把用户名和权限信息放到 redis,返回生成 token,
第四步在 Password 方法中从 Header 获取 token 信息,根据 token 信息获取用户名称,再根据用户名称从 redis 查询数据,给用户进行授权。
二、Redis
(1)首页数据通过 Redis 进行缓存
(2)Redis 数据类型:字符串、set、list、哈希、有序集合
(3)使用 Redis 作为缓存,并不是所有数据都适合使用 Redis 进行缓存,例如很重要的涉及财务类的数据不能使用Redis 进行缓存,但首页数据比较固定,不经常修改则适合使用 Redis 进行缓存。
所以不太重要的或者不经常改变数据适合放到 Redis 中缓存。
三、Nginx
(1)反向代理服务器
(2)具体功能:请求转发(项目中最基本)、负载均衡、动静分离
使用 Nginx 主要是修改配置文件,在配置文件中修改规则,通过规则请求转发。
四、OAuth2+JWT
(1)OAuth2是针对特定问题的解决方案。
(2)JWT 是制定了一种规则,通过规则指定字符串。JWT 包含三部分:头、防伪标志、主体部分。
五、HttpClient
(1)HttpClient 可以理解为发送请求返回响应的工具,不需要浏览器完成请求和响应的过程。
在获取扫描人信息时,通过 HttpClientUtils 发送请求,请求微信的地址来获取信息,上述为项目的应用场景,包括微信支付查询支付状态。
六、Cookie
(1)Cookie 特点
客户端技术(信息存储到客户端或浏览器中)
每次发送请求带着 cookie 值进行发送
cookie 有默认会话级别(有效时长),关闭浏览器 cookie 默认不存在了。
可以设置 cookie 有效时长,通过 setMaxAge 来进行设置。
(2)举例:
登录界面中一般都会有十天内免登录,登录成功后再登录则不需要账户与密码,可以直接登录,如果不清楚 cookie 值则会在十天内一直有效。
七、微信登录
都是比较固定的流程,重点关注获取用户名与密码的流程。
八、微信支付
都是比较固定的流程,重点关注微信支付后查询微信支付状态。
九、阿里云 OSS
(1)文件存储服务器
(2)举例:添加讲师时上传讲师头像
十、阿里云视频点播
(1)视频上传、删除、播放
(2)播放是整合了阿里云视频播放器进行视频播放
在播放中,使用视频播放凭证进行播放,因为运用地址播放是可以播放的,但如果加密,地址播放是无效的,而视频播放凭证既可以播放加密的也可以播放不加密的。
十一、阿里云短信服务
(1)在注册时,需要发送手机验证码。
十二、Git
Git 主要用于版本控制,而现在运用的是远程库的码云,即先将代码敲到本地库中,通过本地库敲到远程库中,运用码云来进行管理控制。
十三、Docker+Jenkins
(1)手动打包运行:运用 main 等进行启动。
(2)idea 打包
(3)Jenkins 自动化部署过程
Docker+jenkins 结合用于项目自动化发布过程。
将 Docker 从远程 Git 库中将代码拉取下来,将代码进行编译再放入系统中运行。