Java 版本依赖与支持

因为不同java版本涉及到对spring的扩展和深度的实践, 所以要拿出来讨论.

spring spark mllib版本 现在spring的版本_java

关于 spring 的版本区分方法

这里做一个简单的说明, 其实 spring 的发布版本是分为三大部分的,
第一个部分是主版本, 就是我们看到的1~5.
第二个部分是从版本, 包括比如 1.0, 1.1, 2.5等等, 这个版本通常是不提供一些很重要的特性, 基本上保持一个在原有基础的更新.
第三个部分是次要版本, 比如说1.0.1, 主要是一个 bug fix或者是部分的一个提升

java标准版和java企业版的由来

因为java的版本有一个历史的称呼改变.以java5做了一个分水岭
java5之前的java标准版叫 J2SE, 就是 java 2, Standard E, 包括1.0~1.4.
同样的, 企业版从 java EE 5之前也叫 J2EE.

从spring1.x与java1.3讲起

spring 1.x开始, 支持的版本是java1.3, 那么为什么是java1.3?
早期spring的版本又叫做 interface21,java1.3引入了一个非常重要的特性, 动态代理, 从1.3开始会针对接口的方式进行动态代理. 这是实现AOP的一个很重要的环节, 因此spring支持的第一个版本就是java1.3.
与此同时spring1.x还支持j2EE 1.3, 这个java版本提供了一个特性就是有Servlet 2.3的API, 而这个版本的Servlet里面会支持Servlet事件, 因此可以和spring的事件来进行呼应

spring2.x与java1.4.2+与J2EE1.3+

spring2.x在一些老项目上还可以看得到, 另外还有ESC版本, 就是security版本, 针对安全性做了一定的提升
java1.4.2则有了一些新支持, 比如NIO
J2EE1.3+没有太大的更新

spring3.x与java5+与J2EE1.4和Java EE 5

从这个版本是一个比较大的版本, 从spring3开始, spring引入了大量的注解, 枚举
注解, 枚举等也是java5开始提供的,
spring3开始确定了spring的内核, 这个内核是比较多的, 比如注解驱动, 事件驱动, 包括AOP的支持, 都在这个版本做的比较完善.

spring4.x与java6+与Java EE 5和7

spring4.x在3.x的基础上增加了一些细节性的东西, 比如注解的提升, 包括预先利用java8的API进行提升, 但是并不要求使用java8.
spring4.x开始, 也是开始对 springBoot 1.x 的支持, 而spring Boot 2.x 是基于 spring5.x 开发的, 因此二者有一定区别.
从spring4.x开始, 对于Java EE的支持开始有若即若离的感觉, 因为自身的体系已经形成了

spring5.x与java8+与Java EE 7

spring Boot 2.x 是基于 spring5.x 开发
支持lambda表达式, 因此要求java8.
对于Java EE 的支持可以看到进一步弱化了.