服务端考试复习
1. 题型
多选题
问答题:5道题
2. 问答题整理
前7个是老师最后一节课讲到,但没给答案。
2.1. web开发框架分层,请求处理过程
分层
- 控制器层
- 业务逻辑层
- 数据访问层
处理过程:
- Web容器开发的基本单元是Servlet,请求先到servlet。
- mapping根据url把请求转到controller,其中spring框架会做参数解析。
- controller拿到请求和请求参数,把请求和请求参数传给业务层
- 业务层处理业务逻辑,可能会做数据持久化访问DAO层
- 业务层把处理结构返回控制器
- 控制器把结果放回给servlet
- servlet拿到了数据和逻辑视图名,找到视图解析器的第三方库
- 视图解析器渲染视图
2.2. AOP编程解决什么问题,开发要点
- 解决问题
- 分离横切关注点,把非业务逻辑分离出来,减少对业务代码的侵入
- 降低耦合
- 开发要点
- 通知 Advice:切面要做什么以及何时做
- 时间:方法前/后…
- 切点 Pointcut:指定在何处切
- Spring只支持在方法的前后切
- 写切点表达式指定逻辑
- 切面 Aspect:Advice和Pointcut的结合
- 包含切的所有逻辑
- 连接点 Join point:方法、字段修改、构造方法
- 引入 introduction:引入新的行为和状态
- 给对象加入新的方法/状态,但不需要实现新的子类。在原来的对象上动态加入新的方法/状态。
- 织入 Weaving:切面应用到目标对象的过程
- 通知 Advice:切面要做什么以及何时做
[[2-面向切面编程#3. 👍AOP术语]]
2.3. spring security web请求保护
使用servlet容器的filter机制拦截web请求,对请求进行权限控制。
2.4. web请求开发有哪些步骤
- 设计REST API
- 使用标准HTTP动词:GET、PUT、POST、DELETE,映射到CRUD
- 使用URL来传达意图
- 例:请求一批资源复数,单个资源单数
- 推荐用名词
- 请求和响应使用JSON
- 使用HTTP状态码来传达效果
Create
: 201No content
: 204
- 创建controller,定义请求映射
- 在业务逻辑层处理请求,返回响应
[[8-REST API#2.12. Rest API接口设计👍]]
2.5. OAuth2基于授权码的授权,系统组成,处理流程
- 系统组成
- 客户端,第三方应用程序,API所提供的资源的消费者
- 后端
- 授权服务器,在分布式系统中进行统一权限控制
- 资源服务器,提供API资源
- 客户端,第三方应用程序,API所提供的资源的消费者
- 处理流程(这里的User应该是指浏览器)
- 用户使用第三方应用
- 第三方应用发现用户未登录,将用户重定向到授权服务器
- 授权服务器向用户索取用户名密码
- 用户名密码匹配,则授权服务器请求用户授权
- 如果用户授权,授权服务器向客户端返回客户端预设的重定向URI和授权码(code)
- 这里的code是和重定向URI一起返回给浏览器的,所以不安全
- 客户端用授权码向授权服务器申请令牌(token),授权服务器确认令牌(token),给客户端返回令牌(token)
- token不过浏览器,在应用程序服务端和授权服务器之间处理
- 客户端调用资源服务器的api,带上令牌(token)
- 资源服务器验证令牌(token),返回结果
- 客户端把请求结果返回
2.6. Spring集成流解决了什么问题
企业级应用程序必须要与其他的系统协作才能完成其目标。Spring集成流可以使应用程序跨越本身的边界,与其他的应用程序和企业级服务实现集成。
- 解决问题
- 消息处理
- 松耦合
- 集成模式实现
- 企业服务总线
- 系统内外的交互
- 消息过滤和转换
2.7. 反应式编程的4个接口
- Publisher:数据发布者
- Subscriber:数据订阅者
- Processor:处理器
- Subscription:协调
2.8. 不同消息的区别
- 反应式编程
- 一种面向数据流和变化传播的声明式编程范式
- 只在JVM中流动
- spring集成流
- header:消息头
- payload:消息体
- 只在JVM中流动
- 消息队列
- 也有header和payload
- 要在网络中流动,所以需要消息转换器(序列化/反序列化)
2.9. docker的三部分
本题由liuyaoli12345 (小希波克拉底号) · GitHub 添加。
- 哪三部分?
- docker engine:服务端,管理一系列资源的生命周期
- Client:一个命令行程序
- Registry:镜像仓库,管理镜像
2.10. spring集成流,Java的stream与反应式的流区别
- spring集成流是企业集成流,也被称为企业集成模式,是一种用于处理和转换在应用程序或服务之间传递的消息的方式;
- Java的stream通常都是同步的,并且只能处理有限的数据集,本质上来说,它们只是使用函数来对集合进行迭代的一种方式;
- JDK9中的 Flow API和Reator对应反应式流,是一种面向数据流和变化传播的声明式编程范式,主要处理异步数据流(Mono/Flux)。
- 标题: 服务端考试复习
- 作者: Charlie
- 创建于 : 2023-12-28 21:12:00
- 更新于 : 2024-07-05 12:55:04
- 链接: https://chillcharlie357.github.io/posts/9b2534b0/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论