3. SSM 框架答辩

本章收录 67 道老师常问问题,高频题靠前。回答时尽量结合自己的项目举例。

1. Spring IOC原理、作用、优势?

IOC即控制反转,是Spring的核心思想。传统开发是开发者手动new对象,控制权在程序;IOC将对象的创建、初始化、销毁、依赖注入全部交给Spring容器管理,控制权反转给框架。核心作用是实现组件解耦,降低代码依赖,方便统一管理和后期维护扩展。

2. Spring AOP原理及实际项目应用场景?

AOP面向切面编程,基于动态代理机制,在不修改原有业务代码的前提下,对方法进行增强。本项目中主要用于统一日志记录、事务控制、权限拦截、异常统一处理。优势是将通用公共功能与核心业务代码分离,实现解耦,提升代码复用性。

3. SpringMVC完整执行流程?

  1. 客户端发送HTTP请求
  2. 请求被核心前端控制器DispatcherServlet拦截
  3. DispatcherServlet调用HandlerMapping,根据URL匹配对应的Controller
  4. 通过HandlerAdapter适配器适配并执行目标Controller方法
  5. Controller调用业务层、持久层处理数据,返回ModelAndView
  6. 视图解析器解析视图路径,渲染页面或封装JSON数据
  7. 最终响应数据返回给前端

4. MyBatis的优缺点、为什么不用Hibernate?

MyBatis优点:轻量灵活、SQL可控、代码与SQL分离、易于维护、适配复杂业务、学习成本低。缺点:需要手动编写SQL,无法自动生成表结构。Hibernate是全自动ORM框架,无需写SQL,但SQL不可控、优化困难、笨重低效,不适合中小型灵活项目,因此本项目选用轻量灵活的MyBatis。

5. Spring事务的传播机制和隔离级别详解?

  1. 常用传播机制:REQUIRED默认级别,有事务加入、无则新建
  2. SUPPORTS支持非事务运行
  3. REQUIRES_NEW强制新建事务。四大隔离级别:读未提交、读已提交、可重复读、串行化,依次解决脏读、不可重复读、幻读问题,项目默认使用读已提交级别。

6. MyBatis一级缓存和二级缓存区别?

一级缓存是SqlSession级别缓存,默认开启,单次会话内有效,会话关闭缓存清空,作用域小。二级缓存是Mapper级别缓存,需要手动开启,跨会话有效,多个用户共享缓存,提升重复查询效率,适合高频查询、低频修改的数据场景。

7. SSM三层架构分别是什么?分工?

  1. 分为Controller控制层、Service业务层、Dao持久层。Controller接收前端参数、调用业务层、返回结果
  2. Service处理核心业务逻辑、事务控制、数据校验
  3. Dao层负责直接操作数据库,完成数据交互,三层架构完全解耦,各司其职,代码结构清晰。

8. 什么是SSM框架?各自作用和分工?

  1. SSM是Spring、SpringMVC、MyBatis三大框架的整合,是传统Java Web企业级开发经典架构,三层架构分工明确。Spring是核心容器,负责Bean管理、依赖注入、事务控制,统筹整个项目
  2. SpringMVC是WEB层框架,专门负责接收前端请求、参数封装、接口响应、视图跳转
  3. MyBatis是持久层框架,负责和数据库交互,完成数据增删改查,简化原生JDBC代码。

9. 一次请求在 SSM 中如何流转?

DispatcherServlet → HandlerMapping → Interceptor → Controller → Service → Mapper → DB,再原路返回。

10. SSM 与 Spring Boot 有什么区别?

SSM 通常需要大量 XML/JavaConfig 手工整合 Spring、SpringMVC、MyBatis,并外置 Tomcat;Spring Boot 约定优于配置,提供 starter、自动配置与内嵌容器,开发部署更轻。

  1. 配置量:Boot 大幅减少样板配置
  2. 部署:Boot 常用 jar 直接运行
  3. 生态:Boot 对监控、测试、打包支持更完善

结合毕设说明为何选 Boot 或为何教学仍学 SSM。

11. Spring IOC 是什么?结合项目说明

容器创建并注入依赖对象,降低硬编码耦合。例如 Controller 注入 Service,Service 注入 Mapper。

12. AOP 在项目里做什么?

AOP 面向切面:在不改业务代码前提下统一日志、事务、权限等横切逻辑。

  1. 基于 JDK 动态代理或 CGLIB
  2. @Aspect + @Around 记录耗时
  3. 答辩结合项目切面类说明

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

13. MyBatis #{} 和 ${} 区别、使用场景、安全问题?

#{}是预编译参数占位符,会自动做类型转换、拼接引号,底层使用PreparedStatement,完全防止SQL注入,安全性极高,日常查询、新增、修改参数全部使用#{}。${}是直接字符串拼接,无预编译,存在SQL注入风险,仅用于动态表名、动态排序字段等无法使用预编译的场景。

14. 事务怎么配置的?何时失效?

通常 @Transactional 加在 Service。失效常见原因:同类自调用、异常被吞、非 public、传播行为配置不当。

15. SpringMVC拦截器和过滤器的区别?

过滤器是Servlet原生组件,拦截所有请求,运行在Spring容器外,主要做编码过滤、全局跨域、静态资源过滤。拦截器是SpringMVC组件,仅拦截Controller请求,运行在Spring容器内,可获取Spring上下文,主要做权限拦截、登录校验、请求日志记录。本项目使用拦截器做登录权限校验。

16. 如何做登录鉴权?

Session 在服务端保存登录态,Cookie 携带 JSESSIONID,拦截器校验是否登录。

  1. 登录成功写入 userId/role 等信息
  2. 集群需 Redis 共享 Session 或改 JWT
  3. 答辩能口述登录→访问受保护接口流程

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

17. 项目包结构为何这样划分?

常见分层为 controller / service / mapper / entity / utils(或 config、dto),让请求接入、业务逻辑、数据访问职责清晰,便于维护和答辩讲解。

  1. Controller:接参、鉴权入口、返回统一结果
  2. Service:事务与业务规则
  3. Mapper:SQL 与持久化

结合毕设指出你项目中的包名与依赖方向(上层依赖下层)。

18. DispatcherServlet 作用?

DispatcherServlet 是 SpringMVC 的核心前端控制器,统一接收并分发 HTTP 请求。

  1. 作为入口协调 HandlerMapping、HandlerAdapter、视图解析等环节
  2. 降低 Controller 与 Servlet API 的直接耦合
  3. 前后端分离项目中仍负责路由到 @RestController

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

19. HandlerMapping?

HandlerMapping 负责将请求 URL 映射到具体的处理器(Controller 方法)。

  1. DispatcherServlet 收到请求后先询问 HandlerMapping
  2. 根据 @RequestMapping 等注解或 XML 配置匹配 Handler
  3. 返回 HandlerExecutionChain(含拦截器链)

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

20. 视图解析器?

视图解析器将 Controller 返回的逻辑视图名解析为真实视图(JSP、Thymeleaf 等)并渲染。

  1. 配置 prefix/suffix,如 /WEB-INF/views/ + .jsp
  2. 返回 JSON 时通常配合 @ResponseBody 跳过视图
  3. 答辩可对比「页面跳转」与「接口返回 JSON」两种模式

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

21. @RequestMapping?

@RequestMapping 将 URL 路径、HTTP 方法映射到 Controller 处理方法。

  1. 可限定 value/path、method、params、headers
  2. 类级 + 方法级可组合形成 REST 风格路径
  3. 项目中用于划分模块接口,如 /user/list、/order/add

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

22. @ResponseBody?

@ResponseBody 将方法返回值直接写入 HTTP 响应体,常用于返回 JSON。

  1. 配合 Jackson 等消息转换器序列化对象
  2. @RestController = @Controller + @ResponseBody
  3. 前后端分离项目几乎全部接口使用该方式

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

23. 参数绑定?

SpringMVC 参数绑定自动将请求参数封装为方法入参。

  1. 简单类型、POJO 对象按名称或 @RequestParam 绑定
  2. @PathVariable 绑定 REST 路径变量
  3. 答辩强调服务端仍需校验,不能只依赖前端

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

24. 文件上传?

文件上传通过 MultipartResolver 解析 multipart 表单,Controller 接收 MultipartFile。

  1. 限制大小、后缀白名单,防止恶意文件
  2. 存储本地目录或 OSS,数据库只存访问 URL
  3. 答辩可演示上传头像/附件的完整流程

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

25. 异常处理?

统一异常处理避免把堆栈直接返回前端,提升体验与安全。

  1. @ControllerAdvice + @ExceptionHandler 捕获业务/系统异常
  2. 封装统一 Result(code/msg/data)
  3. 记录日志便于排错,答辩可展示全局异常类

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

26. Bean 作用域?

Spring Bean 默认 singleton 单例;另有 prototype、request、session 等作用域。

  1. 单例需注意成员变量线程安全
  2. Service/Mapper 通常单例,无状态设计更安全
  3. 答辩可说明为何 Controller/Service 不必每次 new

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

27. 依赖注入方式?

依赖注入(DI)由容器装配依赖,替代手动 new,实现解耦。

  1. 构造器注入更推荐:依赖明确、便于测试、避免空指针
  2. @Autowired/@Resource 可用于字段或 setter
  3. 项目中 Controller 注入 Service,Service 注入 Mapper

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

28. applicationContext.xml?

applicationContext.xml 是 Spring 核心配置文件,声明 Bean、扫描、数据源等。

  1. 与 spring-mvc.xml 分工:根容器 vs Web 容器
  2. Boot 项目多用 JavaConfig + yml 替代 XML
  3. 答辩对比 SSM 手工装配与 Boot 自动配置差异

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

29. 组件扫描?

组件扫描自动发现并注册带 @Component/@Service/@Repository/@Controller 的类为 Bean。

  1. @ComponentScan 或 context:component-scan 指定包路径
  2. 减少 XML 中逐个声明 Bean
  3. 注意扫描范围过大可能引入无关类

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

30. 数据源配置?

数据源(DataSource)管理数据库连接,常用 Druid/HikariCP 连接池。

  1. 连接池复用连接,控制并发与超时
  2. 配置 URL、用户名、密码、最大连接数等
  3. 答辩可说明为何不用 DriverManager 每次新建连接

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

31. SqlSessionFactory?

SqlSessionFactory 是 MyBatis 核心工厂,负责创建 SqlSession 执行 SQL。

  1. 由 MyBatis-Spring 整合为单例 Bean
  2. 加载 mapper.xml 与 mybatis-config
  3. 一次请求通常对应一个 SqlSession(线程绑定)

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

32. Mapper 扫描?

Mapper 扫描自动注册 @Mapper 接口或 mapper 包下的 DAO 接口为 Spring Bean。

  1. @MapperScan("com.xxx.mapper") 替代逐个配置
  2. 接口方法与 XML/注解 SQL 绑定
  3. 答辩可打开一个 Mapper 接口对应 XML 说明映射关系

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

33. resultMap?

resultMap 自定义数据库列与 Java 属性映射,处理驼峰、关联、嵌套对象。

  1. 列名与属性不一致时必须显式映射
  2. 可映射一对一、一对多关联结果
  3. 复杂联表查询答辩时比 resultType 更清晰

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

34. 动态 SQL?

MyBatis 动态 SQL 用 if、choose、foreach 等标签按条件拼接语句。

  1. 适合多条件查询、批量 insert/update
  2. 仍应使用 #{} 预编译防注入
  3. 项目中列表筛选、批量删除常用 foreach

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

35. 一级缓存?

MyBatis 一级缓存是 SqlSession 级别,默认开启,同一会话内重复查询命中缓存。

  1. 增删改会清空当前 session 缓存
  2. 会话关闭后缓存失效
  3. 答辩对比二级缓存的跨 Session 共享特性

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

36. 二级缓存?

二级缓存是 Mapper 命名空间级别,需手动开启,跨 SqlSession 共享。

  1. 适合读多写少的字典类数据
  2. 注意脏读与分布式一致性,生产慎用
  3. 答辩说明本项目是否启用及原因

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

37. 延迟加载?

MyBatis 延迟加载关联对象按需查询,减初次 SQL,但可能 N+1。

  1. lazyLoadingEnabled 配置
  2. 列表页常改 join 一次查
  3. 答辩说明联表策略

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

38. 分页怎么做?

分页限制单次查询数据量,常用 PageHelper 或 LIMIT offset,size。

  1. 前端传 pageNum/pageSize,后端封装 PageInfo
  2. 深分页 offset 过大性能差,可延迟关联优化
  3. 答辩演示列表页分页接口与 SQL

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

39. 逻辑删除?

逻辑删除用 deleted/is_deleted 标志位标记删除,查询默认带 deleted=0 条件。

  1. 数据可恢复,满足审计需求
  2. MyBatis-Plus 可用 @TableLogic 自动过滤
  3. 注意唯一索引与业务查询都要带删除条件

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

40. 乐观锁?

乐观锁用 version 字段:更新时 WHERE id=? AND version=?,成功后 version+1。

  1. 适合并发冲突较少的场景
  2. 失败则提示用户刷新重试
  3. 答辩对比悲观锁 SELECT FOR UPDATE

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

41. 批量操作?

批量操作减少网络往返,MyBatis 可用 foreach 批量 insert 或 ExecutorType.BATCH。

  1. 注意单次批次大小,避免 SQL 过长
  2. 事务包裹保证一致性
  3. 答辩可讲导入 Excel 或批量审核场景

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

42. 多对多表?

简要结论:中间表 + 关联查询。

关于「多对多表」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:

  1. 先用一句话说清定义或结论(如上)
  2. 补充 2~3 个技术要点或注意事项,体现理解深度
  3. 在 SSM 三层架构项目中,结合自己的代码、配置或表结构举例,避免只背关键词

43. 跨域?

跨域是浏览器同源策略限制不同源 AJAX 请求,需服务端 CORS 或 Nginx 反代。

  1. @CrossOrigin、WebMvcConfigurer、Filter 均可配置
  2. 允许 Origin、Methods、Headers 需最小化
  3. 前后端分离联调时高频考点

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

44. 字符编码?

统一 UTF-8 编码避免中文乱码:CharacterEncodingFilter、数据库 utf8mb4、JSON UTF-8。

  1. 请求/响应/页面/库表字符集一致
  2. SSM 在 web.xml 配置过滤器
  3. 答辩可说明曾遇到的乱码排查过程

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

45. 静态资源?

静态资源(CSS/JS/图片)可通过 mvc:resources、WebMvcConfigurer 或 Nginx 托管。

  1. 开发环境注意与 Controller 路径冲突
  2. 生产常 CDN 或 Nginx 分离静态与 API
  3. 答辩区分「接口」与「静态文件」访问路径

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

46. JSON 转换?

JSON 转换由 HttpMessageConverter(如 Jackson)将对象序列化为 JSON 响应。

  1. 配置日期格式、Long 转 String 防精度丢失
  2. @RestController 自动启用
  3. 答辩可展示统一返回体结构

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

47. 日期格式?

日期格式需前后端统一:@JsonFormat、全局 ObjectMapper 或 yyyy-MM-dd HH:mm:ss。

  1. 避免时间戳与字符串混用导致解析失败
  2. 数据库存 datetime,接口返回格式化字符串
  3. 答辩可提及时区(GMT+8)配置

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

48. 日志框架?

日志用于排错、审计与性能分析,常用 SLF4J + Logback/Log4j2。

  1. 分级别:ERROR/WARN/INFO/DEBUG
  2. 关键业务、异常、慢接口应记录
  3. 生产避免打印敏感信息与过量 DEBUG

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

49. 单元测试?

单元测试验证模块逻辑,SpringTest + JUnit/Mockito 可 Mock 依赖测 Service。

  1. 覆盖核心工具方法与关键分支
  2. 集成测试 @SpringBootTest 启动容器测接口
  3. 答辩如实说明测试范围与用例数

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

50. 打包方式?

SSM 传统打 war 部署外置 Tomcat;Spring Boot 打 jar 内嵌容器 java -jar 运行。

  1. Maven package 生成可部署包
  2. 注意 profile 与环境配置分离
  3. 答辩能说出部署命令与端口配置

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

51. 热部署?

部署流程:准备 JDK/DB→导 SQL→改配置→打包上传→启动→Nginx 反代→验证。

  1. 防火墙开放端口
  2. 进程守护 systemd
  3. 答辩能口述完整步骤

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

52. N+1 问题?

N+1 问题:查 N 条主记录后又逐条查关联,产生大量 SQL。

  1. 解决:JOIN 一次查出、批量 IN 查询、MyBatis 嵌套/延迟加载谨慎使用
  2. ORM 项目常见性能坑
  3. 答辩可结合列表页关联展示说明优化

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

53. 连接池作用?

连接池预先创建并复用数据库连接,控制最大连接数、空闲回收与超时。

  1. 避免频繁创建连接的开销
  2. Druid/Hikari 提供监控与泄漏检测
  3. 答辩说明连接数配置依据

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

54. SQL 注入防护?

SQL 注入通过拼接恶意 SQL 篡改语句,防护核心是 预编译 #{} 与参数校验。

  1. MyBatis #{} 使用 PreparedStatement
  2. ${} 仅用于表名/排序等不可预编译场景
  3. 永不拼接用户输入到 SQL

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

55. XSS 防护?

XSS 跨站脚本:恶意脚本注入页面,防护需输出编码、CSP、富文本过滤。

  1. 前端 v-html 谨慎,后端转义用户输入
  2. Cookie 设 HttpOnly 减窃取风险
  3. 答辩结合评论/公告等输入场景说明

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

56. 权限设计?

权限设计常用 RBAC:用户—角色—权限,菜单与接口双重校验。

  1. 前端隐藏按钮不等于安全,后端必须鉴权
  2. 拦截器/过滤器校验登录态与角色
  3. 答辩演示管理员与普通用户差异

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

57. 会话超时?

Session 超时未操作自动失效,web.xml 或 server.servlet.session.timeout 配置。

  1. 前端 401 跳登录
  2. 敏感系统缩短超时
  3. 答辩说明超时时间

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

58. 验证码?

验证码防止暴力破解与刷接口,常见图形码/短信码,服务端校验后一次性失效。

  1. 登录、注册、敏感操作前校验
  2. 可存 Session 或 Redis 并设过期
  3. 答辩说明为何不能仅前端校验

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

59. 统一返回?

统一返回格式如 {code, msg, data},前端据此判断成功/失败与业务数据。

  1. 成功 code=200 或 0,失败返回明确 msg
  2. 与 HTTP 状态码配合使用
  3. 答辩可展示 Result 工具类

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

60. 接口幂等?

幂等:同一操作多次执行结果一致,防重复提交/重复支付。

  1. 唯一索引、状态机、幂等 Token、分布式锁
  2. 前端防抖 + 后端校验双保险
  3. 答辩举例订单提交或支付场景

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

61. 定时任务?

定时任务按 cron 周期执行,Spring @Scheduled 或 Quartz 管理。

  1. 如每日统计、过期数据清理
  2. 注意集群下避免重复执行(分布式锁)
  3. 答辩说明是否使用及触发时间

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

62. 文件存储?

文件存储可选本地磁盘或 OSS 对象存储,数据库仅存路径/URL。

  1. 本地简单但扩展性差,OSS 适合生产
  2. 访问控制与防盗链
  3. 答辩演示上传后如何访问文件

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

63. 配置分环境?

配置分 dev/test/prod 环境,application-{profile}.yml 或 properties 切换。

  1. spring.profiles.active 指定环境
  2. 敏感信息用环境变量,不入库
  3. 答辩说明本地与服务器配置差异

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

64. 最大难点?

答辩「最大难点」应讲 真实问题:现象→定位→方案→验证。

  1. 如联表同步、权限越权、分页性能、跨域联调等
  2. 体现日志、断点、SQL 优化等排错过程
  3. 避免空泛说「技术难」,要有故事线

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

65. 如何讲登录流程?

登录流程:提交账号密码→后端校验→写 Session/签发 JWT→后续请求带凭证→拦截器鉴权。

  1. 密码 BCrypt 比对,不明文传输存储
  2. 失败次数限制与验证码可选
  3. 答辩建议画简单时序图

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

66. 如何讲核心业务?

讲核心业务:表结构 + 流程图 + 关键 Service/Controller 代码。

  1. 说清谁发起、经过哪些层、写哪些表
  2. 强调事务与校验点
  3. 演示比背诵更重要

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。

67. SSM 为何仍常见?

SSM 仍是教学与企业常见架构,因分层清晰、理解 IoC/AOP/MVC 底层原理。

  1. 利于理解 Spring Boot 自动配置背后机制
  2. 许多老项目维护仍用 SSM
  3. 答辩可说先学 SSM 再过渡 Boot

结合毕设:在 SSM 三层架构项目中,可指出具体类名、配置项或表结构,避免只背概念。