面试

自我介绍
面试官好,我是杭州师范大学软件工程专业的洪杰,期待能加入贵公司成为Java后端开发工程师

在技术上,我熟练掌握 SpringBoot 和 MyBatis,有一定的前端经验,熟悉MySQL、Redis等常见数据库和缓存技术,并且能熟练使用多种工具进行开发。

我曾开发基于 SpringBoot 和 Vue 的校园点餐系统,负责订单管理、库存控制和权限管理,并使用 Redis 缓存、WebSocket 通知、SpringSecurity 认证 等技术优化系统性能。

在我的上一段实习经历中,我参与开发了一款医疗教育系统,主要负责组卷和考试功能的开发。期间,我通过Redis 缓存考试内容,避免数据丢失,并基于 ClosedXML 进行 Excel 批量导入/导出,同时使用 JWT + OAuth 2.0 进行权限控制,提高系统安全性。

一、技能特长
mysql索引
事务

二、校园点餐系统

1.Redis缓存菜品内容,减少重复查询
按店铺ID和分类ID缓存菜品内容,查询时先判断redis是否存在菜品信息,没有查数据库

2.使⽤WebSocket实时通知商家,提醒处理订单
用户下单后通过WebSocket将订单号发送到商家端,前端监听 onmessage,在 UI 上显示消息

3.SpringSecurity实现登陆认证和权限控制
用户登录后生成JWT,发送请求后后端解析JWT,通过@PreAuthorize按角色信息限制访问的 API

4.使⽤Nginx实现静态资源部署
Nginx 在项目中主要用于 前端静态资源部署

5.使用SpringAop实现记录登录和操作日志
Spring AOP 通过 @Aspect 切面 + @Pointcut 切点 拦截指定的方法,定义了 @Log 注解,用它标记需要记录日志的方法,Spring AOP 会拦截所有带 @Log 的方法,在执行前后自动记录操作日志,不需要每个方法都手写 logger.info()。

6.使用SpringTask实现定时任务,管理订单和库存内容
使用@Scheduled(cron = “0 * * * * ? “),每1分钟检查未完成订单是否超时,超时取消订单

7.使用Nacos实现负载均衡
Nacos 用于服务注册和发现,目前我们的项目是单体架构,所以启动多个不同端口的后端实例,使用RestTemplate访问其他实例

三、艾地医教
艾地医教是一款集合了题库管理,考试等功能的医疗教育项目,我主要负责的是组卷系统和考试系统的开发。
艾地医教是一个 在线考试系统,支持 题库管理、考试、在线监考 等功能,后端基于 ASP.NET,数据库用 SQL Server,Redis 用于缓存考试数据,WebSocket 负责在线监考的实时视频传输。

1.Redis缓存考试内容,避免学生考试数据意外遗失
按学生ID缓存考试内容,将考试题目,学生答案等信息存入Redis

2.ClosedXML批量导入/导出Excel格式的题库
用ClosedXML读取上传的Excel表格,逐行读取,按表头名字存储对应数据并存入数据库

3.JWT + OAuth 2.0实现权限控制

OAuth 2.0 负责什么?
✅ 负责 Token 生成、验证、刷新和撤销


用户登录后生成JWT,请求时带上JWT,后端根据jwt里的角色信息检查用户是否有权限
[Authorize(Roles = “admin”)]

4.WebSocket用于在线监考的视频流数据传输以及发送考试指令
视频流数据传输是用在实操考试上的,老师可以通过摄像头监控学生考试。这个没写过。
考试指令是什么

5.Nginx实现负载均衡
在多个服务器上部署后端,用户端请求通过Nginx轮询请求不同的服务器

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇