1. 项目背景
- 前后端分离项目
- 微服务项目,1个网关模块,3个业务模块
- 技术栈 : springcloudAlibaba(nacso + gateway + openFeign) ,MySQL,Redis,MyBatisPlus
- .业务就保密了
2. 问题1:开场白
还原对话:
- 面试官:介绍下吧:
- 博主:请问面试官是自我自我介绍吗?
- 面试官:没让你做自我介绍
- 博主:我是介绍自己做的项目吗?
- 面试官:没让你介绍项目,算了,你做自我介绍并且讲下做的项目吧
- 博主:先介绍这个项目是什么,在介绍了做了什么模块,并且这些模块中用到了什么技术。
3. 问题2:你们前后端是如何交互的?
还原对话:
-
面试官:你们前后端是如何交互的?
-
博主:交互这一块,我们采用HTTP方法:GET、POST、PUT、DELET的方式进行交互,具体是用SpringBoot这个框架,其中要导入web启动器坐标,然后我们创建一个controller的类,在类上用到了@RequestMapping()路径注解 和@RestController注解。在这个controller类中,可以定义具体的接口,例如我们采用restful风格市,提交请求可以用post,查询请求用get,修改请求用put。接口定义好后写好接口文档,然后给到前端进行调用
-
面试官:我知道请求用http的方式并且前端肯定时掉后端接口,你们到底怎么交互的????
-
博主:面试官我不明白你到底要问什么,可以具体说清楚点妈?
-
面试官:我就是想知道你们前后端怎么交互的,接口怎么调用的,你要是说不出就下个问题吧
4. 问题3:你们表怎么设计的?
-
面试官:你们表是怎么设计的?
-
博主:设计表之前需要先理解业务,然后在选择适合的引擎,正常我们回选择innodb,因为这个引擎支持事务、行级锁定和外键约束,以及高并发。在我们设计表的时候,要有几个通用的字段,id,逻辑删除字段,创建时间,创建人id,更新时间,更新人id,并且还有一些枚举字段,其余的字段需要根据需求来确定 这些字段的类型,比如id类型根据项目组的要求是用varchar还是bigint,时间类型是用varchar还是用datetime,枚举字段可以用char类型并且用1,2,3,4这种数据进行表示。像id这种字段回设为主键,唯一一些属性,创建表时用的sql未create table xxxxx来进行场景 我们设计了xxx表,这个表是干什么用的…(省略部分都是在讲设计了什么表)
-
面试官:我知道设计表用根据业务设计的,你们到底是怎么设计表的。
-
博主:面试您能具体说一下你想问什么?
-
面试官:你连表不会设计,这个项目你妹参加设计表吧。问你个基础的问题吧
5. 问题4:问个基础问题吧?
-
面试官;你们配置中心用的是nacos,你们是如何配置的?
-
博主:在nacos中创建相应的配置文件,其中dataid为bootstrap.yml文件中nacos配置项的dataid,group为本地配置文件的group,以及要开启自动刷新,并且文件的类型也要配置好。其中nacos中我们会配置数据库连接地址,mybatisplus的配置,还有端口,常量,mq,日志等,并且还要配置多环境
-
面试官:我知道nacos上药配致谢东西,你nacos是怎么配置的?
-
博主:面试官你是想知道我开发中使用的流程妈?
-
面试官:那你说下流程吧
-
博主:加依赖,写配置,打注解,之后nacos中创建文件,(这里省略了具体步骤,正常都是是这么做的)
-
面试官:我知道nacos是这样用的流程,你们到底这么配置的
6. 博主怒怼面试官
- 面试官你到底要问什么东西,也不说清楚,你问我前后端这么交互的,我只有说开发中是什么http给前端接口,前端在去调用的,
- 你问我表结构怎么设计的,我们普通开发不都根据业务来进行确定数据类型和结构,在根据场景加索引
3.你说nacos怎么使用的,我也不知道你想知道什么答案,开发时多环境的,我又妹线上环境,谁知道线上环境是怎么配置的,我只能告诉你我开发时是怎么使用的