# Spring
# 1. 基础概念与环境搭建
- 搭建开发环境:熟悉 Maven、Gradle 等工具;学习如何在 IDE(如 IntelliJ IDEA)中配置 Spring 项目。
- Spring 核心模块:Spring Core、Spring Context。
# 2. Spring 容器与依赖注入(IOC)
- 依赖注入(DI)概念:通过依赖注入,Spring 容器可以自动管理对象之间的依赖关系。理解构造器注入、setter 注入、基于注解的注入。
- Bean 的生命周期:Spring 如何创建、初始化、销毁 Bean 对象,以及 Bean 作用域(singleton、prototype 等)
# 3. 面向切面编程(AOP)
- AOP 基础:AOP 允许你将系统中的横切关注点(如日志记录、事务管理)与业务逻辑分离。了解 AOP 概念、用途,掌握切点、通知、切面的定义。
- AOP 实现:使用注解方式实现 AOP 功能,如日志记录、异常处理,事务管理等。
# 4. Spring MVC
- Web 开发基础:Spring MVC 是用于构建 Web 应用的模块。你要理解 MVC 模式中的 Controller、Model、View 的工作方式。
- 请求与响应的处理:学习如何处理 HTTP 请求、路径映射、参数绑定。
- 表单处理与数据校验:掌握表单提交与数据校验技术(如 JSR-303 Bean Validation)。
# 5. Spring Boot
- 快速开发项目:Spring Boot 是对 Spring 的简化,通过自动配置机制减少繁琐的配置。你要了解如何创建一个 Spring Boot 项目,如何使用它的自动配置功能。
- Spring Boot Starter:了解如何使用 starter 简化项目的依赖管理。
- 内嵌 Web 服务器:Spring Boot 提供了内嵌的 Tomcat、Jetty 服务器,理解如何启动和管理这些服务器。面试时可能会问如何启动一个 Spring Boot 应用。
# 6. 数据库与事务管理
- Spring JDBC 与 ORM 集成:学习如何使用 Spring 简化数据库操作,了解它如何与 JPA、MyBatis 这种 ORM 框架集成。面试中可能会问到如何处理数据库事务、如何使用 Spring 集成数据库。
- 事务管理:Spring 支持声明式和编程式事务管理。掌握事务的传播行为、隔离级别是面试中的重点。
# 7. Spring Security
- 安全认证与授权:Spring Security 是用于保护应用的安全框架,如何实现用户认证与权限管理。你需要了解如何配置认证机制,如何基于角色实现访问控制。
- 跨站请求伪造(CSRF)防护:跨站请求伪造(CSRF)是什么,如何防护 CSRF 攻击。
# 8. 项目实战与性能调优
- 项目实践:搭建一个包含完整前后端功能的 Spring Boot 项目,集成 Spring Security、数据库等。
- 常见性能问题:学习如何使用工具调优 Spring 应用性能,如缓存、连接池、慢查询优化等。
# 9. 面试重点
- 常见问题准备:例如 Spring 中的 Bean 生命周期、IOC 和 AOP 的原理、Spring Boot 自动配置原理、事务管理细节等。
- 源码阅读:掌握一些核心模块源码,了解 Spring 的内部工作机制。
- 实战经验:模拟项目开发与部署,掌握从开发到生产环境中的常见问题解决方法。