理解Spring Boot在做什么

0 阅读2分钟

Spring Boot 是 Spring 框架的简化版本,旨在帮助开发者快速创建独立、生产级的 Spring 应用。它通过“约定优于配置”的原则,大幅减少了配置工作,内置了嵌入式服务器(如 Tomcat),让应用可以“一键启动”。

Spring 和 Spring MVC 的整合(你的理解总结)

1. 核心容器:Spring IoC 容器(Map结构)

你描述得非常准确!Spring 本质上是一个大容器(Map)

text

Map<String, Object> springContainer = new HashMap<>();
  • Key:Bean 的名称(默认是类名首字母小写,如 "userService")
  • Value:Bean 的实例对象(单例模式,默认只有一个实例)

工作流程

  1. Spring 启动时扫描指定包下的所有类
  2. 识别带有注解的类:@Component@Service@Controller@Repository@Resource 等
  3. 创建这些类的实例(对象),存入 Map 容器中

2. Spring MVC 分层架构(四层模型)

你总结的四层非常清晰:

层级作用类比
Entity 层实体类,与数据库表一一对应表的映射
Dao 层数据访问层,操作数据库(SQL)数据库管家
Service 层业务逻辑层,核心业务处理业务主管
Controller 层控制层,接收前端请求,返回响应前台接待

调用链

text

前端 → Controller(调用)→ Service(调用)→ Dao → 操作 Entity → 数据库

3. 依赖注入(DI)的过程

你问的关键问题:Controller 怎么知道 Service 在哪里?

这正是 依赖注入(Dependency Injection, DI)  的魔力:

  1. 扫描注册:Spring 启动时,@Service 标注的 UserService 类被实例化,存入 Spring 容器(Map)中
  2. 寻找依赖:当创建 UserController 时,发现它需要 UserService
  3. 注入依赖:通过 @Autowired 或 @Resource 注解,Spring 自动从 Map 中取出 UserService 对象,注入到 UserController 中
  4. 使用:UserController 就可以直接调用 UserService 的方法了

4. AOP(面向切面编程)

你提到 AOP(面试重点),简单来说:

AOP 允许你在不修改源代码的情况下,给方法增加额外功能,比如:

  • 日志记录
  • 权限检查
  • 事务管理

实现原理:Spring 在运行时动态创建代理对象,在调用目标方法前后插入增强代码。

流程图

image.png

一句话总结

Spring Boot 是一个基于 Spring 的快速开发框架,它通过 IoC 容器(Map结构)管理对象,利用 DI(依赖注入)实现分层解耦,结合 Spring MVC 的四层架构(Entity/Dao/Service/Controller),让开发者能高效构建企业级应用。