Spring框架的基本认识(2025年最新视角)
Spring 是目前 Java 生态中最重要、最流行的应用开发框架,几乎已经成为“事实上的 Java 后端标准”。它最初由 Rod Johnson 在2002年创建,2004年正式发布1.0版本,经过20多年的演进,已经从一个轻量级 IoC/AOP 容器,发展成了一个庞大而高度模块化的“Spring 生态圈”。
一、Spring 核心价值(为什么几乎所有公司都在用 Spring)
- 极大降低企业级开发的复杂性
- 原来需要手写的大量基础设施代码(事务、连接池、线程池、远程调用等),Spring 直接帮你搞定。
- 非侵入式设计
- 业务代码几乎不依赖 Spring API,换框架成本相对低。
- 高度可扩展
- 几乎所有功能都可以通过自定义扩展点替换或增强。
- 生态无比强大
- Spring Boot、Spring Cloud、Spring Data、Spring Security、Spring Session 等子项目覆盖了现代应用开发的方方面面。
二、Spring 框架的三大历史阶段
| 阶段 | 代表版本 | 主要特点 |
|---|---|---|
| 经典 Spring 时代 | Spring 1.x~3.x | XML 配置、IoC 容器、AOP、事务抽象 |
| 注解驱动时代 | Spring 3.x~4.x | JavaConfig、@Autowired、@Component 扫描 |
| 现代 Spring 时代 | Spring 5.x~6.x | 响应式编程、函数式、完全注解驱动、原生镜像支持 |
当前(2025年12月)最新稳定版是 Spring Framework 6.2.x,对应需要 Java 17+,底层基于 Jakarta EE 9+(已从 javax.* 迁移到 jakarta.*)。
三、Spring 核心模块(6大核心模块,你必须知道)
| 模块 | 主要功能 | 常用注解/类 |
|---|---|---|
| Spring Core / Beans | IoC 容器、依赖注入(DI) | @Bean、@Configuration、ApplicationContext |
| Spring Context | 应用上下文、国际化、事件机制 | @ComponentScan、@PropertySource |
| Spring AOP | 面向切面编程 | @Aspect、@Before、@Around |
| Spring DAO / JDBC | 数据库访问抽象、事务管理 | @Transactional、JdbcTemplate |
| Spring ORM | 集成 Hibernate、MyBatis 等 | @PersistenceContext |
| Spring Web / WebFlux | Web MVC(同步阻塞)与 WebFlux(响应式) | @RestController、WebClient |
四、Spring Boot —— 你真正每天在用的其实是它
Spring Boot 不是一个新框架,而是 Spring 的“开箱即用”解决方案,解决了:
- 繁琐的 XML/注解配置 → 自动配置(starter 机制)
- 依赖管理混乱 → spring-boot-starter 套餐
- 部署麻烦 → 内嵌 Tomcat/Jetty/Undertow,可直接打可执行 jar
常用 Starter(2025年最常用前五):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <!-- 传统 MVC -->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId> <!-- 响应式 -->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId> <!-- JPA -->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId> <!-- 安全 -->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId> <!-- 监控 -->
</dependency>
五、当前主流技术栈组合(2025年企业真实用法)
| 场景 | 典型技术栈 |
|---|---|
| 传统单体/微服务 | Spring Boot 3.x + Spring Cloud + Nacos/Alibaba + MyBatis-Plus |
| 高并发网关 | Spring Cloud Gateway(WebFlux + Netty) |
| 响应式全栈 | Spring WebFlux + R2DBC + Reactor + Spring Data Reactive |
| 云原生 | Spring Boot 3 + Kubernetes + Spring Cloud Kubernetes + GraalVM Native Image |
六、核心概念快速记忆口诀(面试必备)
- IoC(控制反转):原来 new 对象,现在交给容器管
- DI(依赖注入):容器把依赖的对象自动塞给你(构造器、setter、字段注入)
- Bean:被 Spring 容器管理的对象
- ApplicationContext:Spring 容器的总管
- @Component 家族:@Component、@Service、@Repository、@Controller/@RestController
- @Autowired:自动装配,按类型找 Bean
- @Qualifier:同类型多个 Bean 时指定名字
- @Primary:同类型多个 Bean 时优先选择
- @Configuration + @Bean:相当于 XML 中的
七、一句话总结
Spring 框架 = IoC 容器 + AOP + 几十个高度模块化的子项目 + Spring Boot 的极简开发体验,掌握了它,你就掌握了 Java 企业级开发的半壁江山。
如果你要深入学习,建议路线(2025版):
- 先学 Spring Boot 3.x(直接上手最快)
- 再回头研究 Spring Framework 6.x 核心原理(IoC、AOP、事件机制)
- 学习 Spring Cloud 微服务全家桶
- 进阶 WebFlux 响应式编程 + GraalVM Native Image
有任何具体模块想深入了解(比如事务传播、AOP 实现原理、条件装配、测试等),随时问我!