2021-服务端开发-Exam1-题目复习
2021复习
25道多选,5道问答
1. 多选[2020]
- 名为多选,实际上是不定项选择,并且全选对才有4分,少选只有1分。
- 建议好好听课,如果听课前面的选择其实不太难。
2. 简答[2020]
- web项目有哪些层次(分层)
- 简述JDBC hibernate JPA的开发流程与特征
- 微服务架构的特征,单体应用存在的问题
- 简述服务发现与调用的开发流程(以eureka为例)
- 简述服务网关的作用与开发流程(以zuul为例)
3. 选择[2021]
- Spring也可以支持其他的第三方框架
- 横切关注点包括哪些?安全、事务、日志、缓存
- AOP通知:advice有哪些注解?
- 要让AOP生效:@EnableAspectJS
- 具备Component能力的注解
- Controller, Repository, Service,
- @Aspect是不是?
- 实现控制器的时候RequestMapping可以加在?类、方法上面
- 启动MVC @EnableSpringMVC @EnableWebMVC?
- Controller返回的字符串,指向视图名Json 重定向 redirect
- 数据源,通过jdbc 没有做池化处理?
- 生产环境中:配置信息放到配置服务中
- 业务层和data层用接口做隔离,好处是什么?
- Hibernate的使用
- 获得session,拿到session接口后访问数据库
- 定义数据库表和对象的映射关系,直接通过注解方式
- Hql查询语言(支持标准sql查询语言)
- Jpa实现数据访问层时需不需要定义数据库表和类的对应关系?(要)
- Springdatajpa提供的接口是如何使用的?
- 注解、命名、需不需要将方法原型写一遍,继承了什么接口(JpaRepository, CrudRepository)
- Mongodb @document,是java.persitence定义的吗,还是谁定义的?
- 存数据的操作,java对象不用做序列化(redis需要)
- Mongodb的概念
- collection, database, document, field
- Shell的使用
- Redis
- 特点
- 支持的数据类型
- Escache和redis的区别
- Escache支不支持数据的持久化
- 使用缓存编程的常用注解
- 容器
- 和虚拟机的区别
- Docker run常用命令参数
- -P随机端口 –d后台运行
- Docker管理命令
- SpringBoot和Spring-cloud的关系
- 配置服务:本身基于springboot开发,
- Spring-cloud能解决的问题
- 当一个服务需要获取配置数据时,需要向配置服务获取数据,配置服务如何知道要获取的是哪个数据?服务名和profile
- 实现配置服务需要在启动类上加注解?@EnableConfigServer
- 使用配置服务的客户端需要加什么注解?
- 在服务网关处可以实现哪些能力?用户认证和授权,静态路由、动态路由,数据收集,日志
4. 简答[2021]
- 控制器、业务层、数据访问层、领域模型,以及mvc的view和model
1. - Dispatchservlet整个处理过程
- 第一步:携带有URL和表单信息的Request达到DispatchServlet
- 第二步:DispatchServlet去Handler mapping中查找映射关系
- 第三步:根据查找到的映射关系,将Request交给具体对应的Controller
- 第四步:Controller得到携带的URL和表单信息等,在交给业务层处理后,得到业务层返回的Model和logical的视图名
- 第五步:DispatchServlet得到对应的model和logical view name(str),并向ViewResolver根据名称查找界面
- 第六步:DispatchServlet得到查找到的View界面
- 第七步:将View放置在Response中返回给客户端
- 微服务有什么特征?单体应用有什么不足
- 单体应用程序
- 数据库的表对所有模块可见
- 一个人的修改整个应用都要重新构建、测试、部署
- 整体复制分布式部署,不能拆分按需部署
- 微服务
- 应用程序分解为具有明确定义了职责范围的细粒度组件
- 完全独立部署、独立测试,并且可以服用
- 使用轻量级通信协议(HTTP和JSON),松耦合
- 服务实现可使用多种编程语言和技术
- 将大型团队划分成多个小型开发团队,每个团队只负责他们各自的服务。
- 单体应用程序
- 服务注册与发现的好处
- 可以快速水平伸缩而不是垂直伸缩,不影响客户端
- 水平伸缩:根据需求增减服务的实例
- 垂直伸缩:服务内增加更多的线程
- 更加具有弹性:容错性更强。
- 可以快速水平伸缩而不是垂直伸缩,不影响客户端
- eureka、zuul、feign、ribbon的相互关系
- Eureka:
- 中间添加了一个Eureka Server,所有的服务都找他注册、发送状态
- 多个Eureka Server,保证可使用(信息需同步)
- Zuul
- Feign
- Ribbon:服务端负载均衡
- Eureka:
2021-服务端开发-Exam1-题目复习
https://spricoder.github.io/2021/05/04/2021-Server-Development/2021-Server-Development-Exam1-%E9%A2%98%E7%9B%AE%E5%A4%8D%E4%B9%A0/