Spring 框架发展历程全解析
一、起源与核心阶段(2002-2006年)
1. 框架诞生(2002年)
- 背景:Rod Johnson 在其著作《Expert One-On-One J2EE Design and Development》中批判传统 J2EE 开发的复杂性(如 EJB 笨重、依赖容器等),提出“轻量级容器”理念。
- 关键动作:基于书中示例代码开发出 Spring 框架原型,核心目标是通过 依赖注入(DI) 和 面向切面编程(AOP) 简化企业级开发。
2. Spring 1.x 正式发布(2004-2006年)
- Spring 1.0(2004年)
- 首次公开版本,核心模块包括 Core(IoC 容器)、Context(上下文)、AOP(切面编程)。
- 提出 POJO(普通 Java 对象)编程模型,替代 EJB 组件,降低对特定容器的依赖。
- Spring 1.2(2006年)
- 增强对 事务管理(声明式事务)和 数据访问(如 JDBC 抽象层)的支持,引入
TransactionTemplate
简化编程式事务。 - 开始集成第三方框架(如 Hibernate、Struts),推动“一站式整合”理念。
- 增强对 事务管理(声明式事务)和 数据访问(如 JDBC 抽象层)的支持,引入
二、快速扩展与模块化阶段(2007-2012年)
1. Spring 2.x:功能扩展(2007-2009年)
- Spring 2.0(2007年)
- 引入 基于 XML 的 AOP 配置简化语法(如
aop:config
标签),降低切面编程门槛。 - 支持 注解驱动开发(如
@Repository
、@Service
),但 XML 仍为主要配置方式。
- 引入 基于 XML 的 AOP 配置简化语法(如
- Spring 2.5(2008年)
- 全面支持 Java 5 新特性(泛型、枚举、自动装箱),简化泛型在容器中的使用。
- 推出 基于注解的声明式事务(
@Transactional
),减少 XML 配置量。
2. Spring 3.x:现代化奠基(2010-2012年)
- Spring 3.0(2010年)
- 首次支持 Java 6,引入 基于 Java 的配置类(
@Configuration
+@Bean
),开启“零 XML 配置”时代。 - 新增 REST 支持(
@Controller
+@RequestMapping
),推动 Spring MVC 成为主流 Web 框架。 - 核心模块升级:
- 表达式语言(SpEL) 替代部分 XML 逻辑,如
@Value("#{systemProperties['user.name']}")
。 - 类型转换与验证模块(
ConversionService
+ JSR-303 集成)增强数据处理能力。
- 表达式语言(SpEL) 替代部分 XML 逻辑,如
- 首次支持 Java 6,引入 基于 Java 的配置类(
- Spring 3.2(2012年)
- 简化 MVC 静态资源处理(
mvc:resources
),支持 Servlet 3.0 异步请求(DeferredResult
)。
- 简化 MVC 静态资源处理(
三、云原生与微服务转型阶段(2013-2017年)
1. Spring 4.x:拥抱互联网技术(2013-2016年)
- Spring 4.0(2013年)
- 全面支持 Java 8(Lambda 表达式、Stream API),优化代码简洁性(如
@FunctionalIn
- 全面支持 Java 8(Lambda 表达式、Stream API),优化代码简洁性(如