31 为什么需要垃圾回收
避免长期未使用的对象占用内存。
GC 自动回收无引用的对象,避免内存泄漏,确保系统稳定。
32 SpringMVC 执行流程
DispatcherServlet 接收请求 → HandlerMapping 找处理器 → HandlerAdapter 适配 → Controller 执行业务 → 返回 ModelAndView → ViewResolver 解析视图 → 渲染。
特点是分层清晰、耦合度低。
33 编程式事务与声明式事务
编程式需要手写 begin、commit、rollback。
声明式通过 @Transactional 自动管理,更常用更方便。
34 MyBatis 中 $ 与 #
$ 用字符串拼接,存在 SQL 注入风险。
使用预编译占位符,是安全写法。
35 MyBatis 动态 SQL
用于处理复杂条件查询,避免大量 if-else 拼接,提高可维护性。
36 Shiro 认证流程
用户提交身份信息 → SecurityManager 处理 → Realm 校验 → 成功登录。
授权则是判断用户角色与权限。
37 BeanFactory 与 ApplicationContext 区别
BeanFactory 懒加载,只在获取时创建 Bean。
ApplicationContext 启动时创建所有 Bean,功能更丰富。
38 Spring Bean 生命周期
实例化 → 设置属性 → 初始化方法 → Bean 使用 → 销毁方法。
39 singleton 与 prototype
singleton 全局唯一对象。
prototype 每次获取新对象,常用于无状态场景。
40 Spring 的优势
降低耦合、支持 AOP、事务、测试集成、便于整合框架、提升开发效率。