当前位置: 首页 > news >正文

周五论文答辩

老师可能提问的问题及参考答案:


1. 什么是MVC模式?在系统中是如何应用的?

答:
MVC(Model-View-Controller)是一种将应用程序分为模型(Model)、**视图(View)控制器(Controller)**的设计模式。

  • 模型负责管理数据和业务逻辑(如学生信息的增删改查);
  • 视图负责展示用户界面(使用FreeMarker(是一款基于模板的 Java 视图引擎,用于将后端数据动态地填充到 HTML 页面中,生成最终的网页。)模板引擎生成HTML页面);
  • 控制器接收用户请求,调用模型处理数据,并选择视图返回结果。

在系统中的具体应用
例如,用户查询学生信息时,控制器(StudentController)接收请求,调用模型(StudentService)从数据库获取数据,最后通过视图(FreeMarker模板)渲染结果页面。


2. 为什么选择Spring Boot作为开发框架?它有哪些优势?

答:
选择Spring Boot的原因包括:

  • 简化配置:通过自动配置(如内嵌Tomcat(服务器))减少XML配置,提升开发效率;
  • 快速开发:提供“starter”依赖包,集成MyBatis、FreeMarker等组件;
  • 维护便捷:代码耦合度(可以理解为关联程度)低,支持模块化开发;
  • 分布式支持:结合Zookeeper中间件(ZooKeeper 是一个开源的 分布式协调服务框架,用于解决分布式系统中的数据一致性问题,常用于实现注册中心、配置中心、分布式锁、主从选举等功能。),解决高并发问题。
  • 数据一致性概念: 数据一致性是指在分布式系统或数据库系统中,**多个副本或多个组件所看到的数据必须是统一、正确的。**它是系统正确性的核心指标之一。
  • 没有保证数据一致性带来的问题:
    你在微信群发了一个红包,系统提示已扣款
    但朋友反馈没有收到红包
    📌 问题: 红包扣款成功但数据未及时写入红包服务的数据库,造成用户资产混乱。

优势举例
系统中通过Spring Boot的@RestController注解快速定义API,并通过Spring Data简化数据库操作。


3. MyBatis(我们是使用这个框架操作数据库(Mysql))在系统中起什么作用?与JDBC相比有什么优势?

答:
MyBatis作为持久层框架,作用包括:

  • SQL映射:通过XML或注解将Java对象与SQL语句绑定;
  • 简化数据库操作:封装JDBC代码,减少重复工作;
  • 动态SQL支持:灵活处理复杂查询(如模糊搜索学生信息)。

对比JDBC的优势

  • 代码简洁:避免手动处理连接和结果集;
  • 缓存机制:提升查询性能;
  • 解耦SQL与代码:便于维护和优化。

4. 系统如何解决高并发问题?

答:
采用分布式架构Zookeeper中间件

  • 分布式服务器集群:将功能模块部署到多台服务器,分担请求压力(举一个例子就是,你使用微信聊天时对应的聊天服务器有多个,当你登陆时会选择一个负载压力最小的一个进行访问,不然就一个服务器支持不了这么多用户访问);
  • Zookeeper:协调服务器节点,确保数据一致性和服务高可用性;
  • FastDFS文件服务器(一个开源项目,就说是一个开源项目就行):分离图片存储,降低数据库负载。

举例:在选课高峰期,用户请求被分配到不同服务器处理,避免单点瓶颈。


5. 系统测试中黑盒测试和白盒测试有什么区别?

答:

  • 黑盒测试:关注功能是否符合需求,不关心内部实现。例如,测试用户登录功能是否正常。
  • 白盒测试:检查代码逻辑和结构,如分支覆盖率和异常处理。例如,测试学生信息删除时的数据库事务回滚机制。

系统中的应用
黑盒测试验证了用户注册、信息修改等业务流程;白盒测试通过代码审查确保逻辑正确性。


6. 为什么选择B/S(B是浏览器的缩写,也就是网页版应用)架构而不是C/S(C可以理解为需要安装应用)架构?

答:

  • B/S架构优势
    • 跨平台:用户只需浏览器,无需安装客户端;
    • 维护便捷:服务端更新后所有用户即时生效;
    • 成本低:减少客户端部署和维护成本。

系统中的应用:教师和学生通过浏览器即可访问系统,管理员通过Web界面统一管理数据。


7. 未来可以从哪些方面优化系统?

答:

  • 云服务器部署:采用阿里云或AWS,提升扩展性和可靠性;
  • 安全增强:防御DDoS(发送大量无效请求使得服务器负载过高导致瘫痪(CPU烧了))攻击,引入OAuth2.0(OAuth 2.0 是目前最流行的授权协议(Authorization Framework),用于第三方应用安全地访问用户在某一平台上的资源,让第三方应用在用户授权的前提下,访问用户在其他服务平台上的资源(如头像、邮箱、联系人等),无需暴露用户密码。)认证;
  • 功能扩展:集成选课管理、成绩分析模块;
  • 智能化:结合大数据分析学生行为,提供预警功能。

8. 数据库设计中为什么要分多张表?如何保证数据一致性?

答:

  • 分表原因
    • 规范化设计:减少冗余(如学生表与专业表通过外键关联);
    • 提升性能:单表数据量过大时,分表可优化查询效率。
  • 数据一致性
    • 外键约束:如学生表的p_id关联专业表;
    • 事务管理:通过Spring的@Transactional注解保证操作原子性(原子性:一个操作要么全部完成,要么全部不执行)。
其他技术的概念:

以下是这些技术的简要概念:

  1. jQuery(和后端交互):

    • jQuery 是一个快速、简洁的 JavaScript 库。它简化了 HTML 文档的遍历、事件处理、动画以及 Ajax 操作等。jQuery 提供了一个跨浏览器的解决方案,极大地简化了 JavaScript 编程,尤其是在处理 DOM 操作和事件绑定时。
  2. Bootstrap:

    • Bootstrap 是一个开源的前端框架,旨在简化网页设计的过程。它提供了一组现代化、响应式的网页组件,涵盖了布局、按钮、导航、表单、卡片等常用元素,并且采用了 HTML、CSS 和 JavaScript(jQuery)构建。Bootstrap 帮助开发者快速构建美观且易于适配不同屏幕尺寸的网页。
  3. JSON (JavaScript Object Notation):

    • JSON 是一种轻量级的数据交换格式,易于人类阅读和编写,同时也易于机器解析和生成。它基于 JavaScript 的对象表示法,但是与语言无关的,可以在多种编程语言中使用。JSON 通常用于 Web 应用中的数据交换,它主要由键值对和数组组成。
  4. Dubbo:

    • Dubbo 是一个高性能的 Java RPC 框架,最初由阿里巴巴开源,广泛应用于分布式系统中。Dubbo 提供了服务治理、负载均衡、容错、路由等功能,支持多种协议(如 HTTP、RPC、Dubbo 协议等),并支持通过注册中心进行服务发现。它帮助开发者实现高效、可靠、灵活的微服务架构。

相关文章:

  • 代码随想录算法训练营Day22
  • Redisson中的RateLimiter令牌桶限流简单使用
  • 如何在Linux系统上通过命令调用AI大模型?
  • RAG中对于PDF复杂格式文件的预处理的解决方案:MinerU
  • TCN-LSTM时间卷积长短期记忆神经网络多变量时间序列预测(Matlab完整源码和数据)
  • 比亚迪宋plus DMi 21款更新后,安装7.5版本高德地图机车版本
  • 用DrissionPage升级维基百科爬虫:更简洁高效的数据抓取方案
  • 《Docker概念解析》
  • Livox-Mid-70雷达使用------livox_mapping建图
  • ABC400E题解
  • 【教程/笔记】计算机组成原理第一章
  • QEMU-KVM加SPICE,云电脑诞生了
  • 嵌入式AI开发者职业成长路线图
  • 基于Flask的酷狗音乐数据可视化分析系统
  • JS 其他事件类型
  • c++项目 网络聊天服务器 实现;QPS测试
  • kotlin,数字滚动选择
  • <工具 Claude Desktop>配置 Whois MCP 用于 whois 查询
  • Matlab:三维绘图
  • 【PostgreSQL内核学习:深入理解 PostgreSQL 中的 tuplesort_performsort 函数】
  • 有那些可以自己做壁纸的网站/google引擎免费入口
  • 网站免费正能量直接进入老狼/网站seo属于什么专业
  • 网站制作实训/seo教程培训
  • 创建网站视频/厦门人才网唯一官方网站
  • 用什么软件可以做网站/seo排名赚下载
  • 树莓派可以做网站空间吗/网络推广的工作好做吗