1.请简单介绍一下你们的项目?
我们的头条项目是一个拥有app和自媒体管理和平台管理三端的头条资讯类项目。采用前后端分离 微服务架构设计 。
app端具有登录注册 查看文章等功能
自媒体端具有内容 评论 素材管理等功能
平台管理端具有用户管理 用户审核 内内容管理 审核 数据 权限统计等相关功能
2.你们项目的技术架构是怎样的?
3.你们Springboot及SpringCloud使用的版本?
springboot2.3.9,springcloudHoxton.SR8
4.你是如何理解前后端分离开发的?
让专业的人做专业的事 各司其职
首先 页面搭建 布局这些需要前端完成的任务 交由前端完成开发
后端书写业务处理逻辑 给前端发送其所需要的数据
前后端通过开发文档 并行开发可极大提高开发效率
5.你们后端接口是如何测试的?
通过Junit单元测试测试代码逻辑
使用postman来测试前端未开发完成的功能
使用swagger和小刀可以更加方便的完成开发
6.SpringMVC接收参数的注解有哪些?
@RequestBody 用来接收json格式的参数
@RequestParam 接收post请求的参数
@PathVaribale 接收写在请求路径中的参数 或表单
7.你们的接口文档是如何定义的?
需要书写接口定义 包括接口地址 请求方式
请求和相应数据类型
接口描述
请求示例
8.你们项目的数据库设计情况? 你是否有独立设计过数据库?
不同的微服务有自己不同的数据库 每个大概20-30表 总共100多个表
有设计过结构简单些的数据库
9.能否说出SpringBoot的自动装配原理?
@SpringBootApplication注解由三个注解共同完成自动转配
@SpringBootConfiguration:声明启动类为配置类
@EnableAutoConfiguration通过 @Import 注解导入 AutoConfigurationImportSelector类,然后通过AutoConfigurationImportSelector 类的 selectImports 方法去读取需要被自动装配的组件依赖下的spring.factories文件配置的组件的类全名,并按照一定的规则过滤掉不符合要求的组件的类全名,将剩余读取到的各个组件的类全名集合返回给IOC容器并将这些组件注册为bean
@ComponentScan: 扫描启动类所在的包以及子包下所有标记为Bean的组件并注册到IOC容器中
10.项目中是否自定义过starter起步依赖,如何定义?
将需要定义为起步依赖的模块,在其resources下新建META-INF包,在包下新建spring.factories文件
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.heima.common.exception.ExceptionCatch //类的全路径名
11.项目中异常是怎么处理的?
有全局异常处理类,使用@ControllerAdvice Springmvc 异常处理拦截注解标注,配合@ExceptionHandler注解,在该注解上指定异常类型。当controller层抛出对应的异常时,方法就会执行。可以在通用异常处理类中定义不同的异常,来处理不同的异常
12.项目中注册中心的作用?
1、注册服务
2、发现服务
3、服务的健康检测
4、服务中的配置管理
13.项目中api网关的作用?
可以对请求进行过滤、拦截,身份认证
通过路由规则,将请求分发到指定的服务中
还可以解决前后端跨域问题
