Spring Framework版本 | Java 标准版 | Java 企业版 |
---|---|---|
1.x | 1.3+ | J2EE 1.3+ |
2.x | 1.4.2+ | J2EE 1.3+ |
3.x | 5+ | J2EE 1.4 和 JAVA EE 5 |
4.x | 6+ | JAVA EE 6 和 7 |
5.x | 8+ | JAVA EE 7 |
第一部分主版本就是我们看到的1-5, 第二个版本是从版本也就是次要版本, 包括了比如说1.0、1.1、2.0、2.5这样的版本, 那么这个主版本版本通常不提供一些很重要的特性, 基本上是保持一个在原有的基础上面做一些更新, 还有个次要版本比如说1.0.1这么一个版本, 这个次要版本主要是一个BUG FIX或者是部分上面做的个提升。
为什么这么设计? 因为Java它里面有一个变化过程, 如果看一些比较老的书就能看到这么一点, 有些地方叫J2SE, 有些地方叫Java SE, 那么这是为什么这么来的? 因为从Java 5这个版本开始做了一个分水岭, Java 5之前的Java 的标准版叫J2SE, 就是 Java 2 然后Standard E 这个版本, 另外一个就是Java企业版本, 那么同样的方式, 从JavaEE 5之前也叫J2EE, 那么就包括1.0-1.4这个版本。
从spring Framework的EX版本它起初支持的版本是java1.3, 那么为什么会到java1.3, 其实是非常有道理的, 因为Spring Framework早起的版本叫interface 21, 那么这个版本其实就是依赖于java1.3, 1.3引入了一个非常重要的特性动态代理, 从java1.3开始就会针对接口的方式来进行动态代理, 那么这是实现AOP的一个很重要的环节。因此spring的第一个版本就必须依赖java1.3, 与此同时他支持的JavaEE 版本是1.3,这个版本一个简单的特性就是Servlet的API对应的Java EE版本是1.3, Servlet版本是2.3这个版本, 2.3这个版本它在里面会支持Servlet事件, 因此它可以和我们Spring的事件来进行一个呼应, 当然Servlet事件和Spring事件都是Java标准事件的实现。
总结: Spring Framework1.X 新特性动态代理, Servlet事件
Spring Framework 2.x版本比如说2.5.6这么一个版本, 比如2.5.6点什么ESC这样版本, 那个就是Security的缩写, 那么就是说它针对安全部分做了一些设计和提升, Java 1.4.2 那么这个版本里面主要是支持了一些包括我们常见的NIO的支持, 那么这个时候Java EE 的企业版本并没有做太多的更新它还是支持到了Java EE J2EE的1.3这个版本。
总结: Spring Framework2.X 安全方面做了一些设计和提升
Spring Framework3.x版本, Spring3这个版本是一个重大的版本, 它引入了大量的注解, 所以他需要支持的版本是Java 5这个版本, 因为Java5里面会提升一些注解, 包括注解枚举这样的东西, 所以在Spring3里面会引入大量的注解和枚举, 所以这个版本的要求最低的Java标准版的要求是Java 5, 那么对应的这个Java EE 的版本从J2EE 1.4 和 JAVA EE 5, 这个版本就是这么一个过度过程, 那么spring3为什么非常重要, 因为Spring3 基本上确定了Spring Framework的一个内核, 这个内核是比较多的, 包括比如说注解驱动, 事件驱动, 包括一些AOP的支持, 它都是这个版本做的比较完善。
总结: Spring Framework3.X 确定了Spring Framework的一个内核, 这个内核是比较多的, 包括比如说注解驱动, 事件驱动, 包括一些AOP的支持, 它都是这个版本做的比较完善
4这个版本基本上在3的版本上面增加了一些新的东西, 主要的一些细节性的东西, 包括注解上面的提升, 包括利用Java 8 里面的API进行提升, 那么当然它这个4版本并不要求一定是Java 8, 它最低要求是Java 6就可以了, 这是为了照顾到更多的人去使用Spring4这个版本, 与此同时从Spring4这个版本开始, 也是对于Spring Boot 1.x的一个支持, 1.x就是Spring Boot的1版本, 也就是说Spring Boot的1版本它是基于Spring4来就行开发的, 那么Spring Boot 2 是基于Spring 5 来开发的, 所以能看到它的一个区别点, 在这个地方同时它们对Java EE 的要求一个是支持情况一个是Java EE 6 和 7, 从Spring 5 开始是对应的是Java EE 7, 其实这个是后从Spring 4 开始 Spring翅膀就非常硬了, 它对Java EE 的支持其实是一种若即若离的感觉, 所以基本上从Spring 4 开始形成了自己的体系, 尤其Spring Boot 起来之后, 包括Spring Cloud出现之后, 基本上它的完整地体系就已经生成了。
总结:
Spring Framework4.X : 主要的一些细节性的东西, 包括注解上面的提升, 包括利用Java 8 里面的API进行提升, 同时Spring Boot 1.x的一个支持
Spring Framework5.X: Spring Boot 2 是基于Spring 5 来开发的, 所以能看到它的一个区别点