Spring入园须知

 

说起 Spring,先看它的发展历史,对整个生态有了基础认知,再看下 Spring 依赖的基础机制(IoC 和 AOP),就达到入门须知的目的了。毕竟 Spring 太大了,如果把话题扯得太宽泛太细节,很可能会迷失在 Spring 生态森林里,也算是在这里列一份 Spring 大纲地图,之后可以依照大纲分模块去逐个突破。

Spring 前世今生

这不是 Java 的黑历史,而是 Java 的来时路

J2ME(微型版)、J2SE(标准版)、J2EE(企业版)是 Java 不同版本,随着需求的增长,J2EE 不断变得复杂,其中一项重要工作就是编写 EJB(Enterprise Java Beans),如果没有 JBuilder1 等 IDE 工具的支持,EJB 2.x 的开发经历可以说是让人抓狂,虽然后续的 EJB 3.x 也走的轻量化路线。

2002 年,Rod Johnson2 出版了著名的 Expert One-on-One J2EE Design and Development,又在 2004 年出版了 Expert One-on-One J2EE Development without EJB3。这两本书对 J2EE 当时存在的各种问题进行了深入剖析,还提出了一套解决方案,就是 Spring Framework(对 Rod Johnson 一系列思想的实践),现在说到 Spring,狭义上指的是 Spring Framework(J2EE行业标准),广义上现在已经成为了一个庞大的家族生态。

2003 年,Spring Framework 初具框架模型,2004 年 3 月发布 1.0 正式版。Spring Framework 不是站在 J2EE 对立面,而是对它的补充。Spring Framework 的模块化是很好的设计,它的大量模块改变了 Java EE 项目的开发方式,开发时根据场景引入需要的模块。早期版本会提供一个包含所有内容的 jar 包,但后来取消了这个方式(因为开发决定依赖什么模块时,只能自行判断该模块依赖哪些下游,但又不确定不同依赖、不同版本依赖是否兼容)。

Spring Boot 解决了这个问题,提供了起步依赖、自动配置,以及各种面向生产的能力,让应用开发更加高效。在云计算微服务时代诞生了 Spring Cloud,衍生出了庞大的 Spring 家族。

Spring 家族生态

Spring Framework

Spring Framework 是 Spring 家族成员的基础,家族早期只有少数几个围绕 Spring Framework 的项目。有项目一开始就是在 Spring Framework 上单独开发的,也有很多模块后来从 Spring Framework 脱离出来独立发展。

Spring Framework 为 J2EE 应用提供了一整套开发配置模型,除了依赖注入、AOP、资源管理等核心特性,还有事务管理、ORM 框架等组成的数据访问能力,框架还为多种类似功能的第三方组件提供了一致的抽象,比如Hibernate 或者 MyBatis 都可以作为插件适配。Spring MVC Web 框架也取代了早期 SSH 组合中的 Struts,后来 Spring Framework 5 又推出了响应式 Web 框架 Spring WebFlux。Spring Framework 还有很多实用的功能,比如调度任务支持、缓存抽象等。

Spring Framework 支持的 JDK 和组件一直在升级,每 3~4 年会有个重大版本发布。Spring Framework 各版本之间的兼容性还是比较好的,特别是那些核心功能,在升级时能无缝平移。但升级也不是没有代价,抛开依赖的各种库的版本变化,框架自己的一些配置默认值有可能变化,有些功能可能会被淘汰。如果进行了版本升级,尤其是大版本升级,最好对系统做一轮完整的回归测试。Spring Framework 主要版本升级列表如下,

版本

支持的 JDK 版本

时间

6.0.x

JDK 17~21

5.3.x

JDK 8~19

2024.12

5.2.x

JDK 8~15

2021.12

5.1.x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值