spring-core-1-07 | Java语言特性运用:各种Java语法特性是怎样被Spring各种版本巧妙运用的?

spring 为什么在不同的版本有不同的支持?

目的是寻求一个最大的公约数, 比如尽可能迎合更多的版本.
其实spring对于 java 的支持是比较靠前的. 但是对版本的要求是靠后的.
原因就是我们不太可能在升级的过程中将JDK不断地往最高版本去升级, 从稳定性或者是易用性的角度来说, 这是可取的.

Java 语法变化

在这里插入图片描述

2004

java 5 发布, 其实也是 spring 1 发布, 但是当时的spring 只需要 java1.3 就可以, 但是也要考虑到 java 5 的支持, 于是 spring 1.2 就开始支持 java 5 的特性了.

2006

java 6 发布, 比较有名的是 @Override 注解, 这个注解强制要求子类或子接口要覆盖父类或父接口里面的方法. 这部分特性在spring 中体现的不是非常多.

2011

Java 7 发布, diamond语法就是 new 一个泛型类的时候, 可以不指定泛型类型那种(ArrayList array = new ArrayList<>()).

多catch就是可以有多个catch语句.

Try resource, 一个专业术语叫做 ARM(Automatic Resource Management), 所谓的自动的资源的一个管理. 比如在关闭 IO 的时候, 要调用一个 close 方法, 通过 try-with-resources 语法之后, 可以不用强制去调 IO, 当然这只是一个语法层面的变化, 底层仍然会动态字节码生成一个close方法来调用.

2014

Java 8 发布, 那么这几个特性就很熟悉了, 不多说.

2017

Java 9 发布, spring 5 并没有对往后的语法或者API进行支持.
这里的考虑是在 java 9 由于模块化的实现之后, java 社区产生了一定的分裂. 可能保留在 java 8 这一版本会是一个常态, 而像 java 9 和 java 10 这种短期支持版本不太会长存, 可能会支持更长支持的版本.

Spring 对Java 语言特性运用

Java 5 语法特性

在这里插入图片描述

2004年spring1.0 发布, 同时2004 年Java 5 也发布了, 于是在 spring 1.2 开始支持抽象注解.

而 for-each 语法 也是 java 5 里面一个新的语法, 这个语法要求 jdk 必须是 Java 5, 所以 spring 3.0 开始, 强制要求是 Java 5.
自动装箱和泛型也是一样的道理.

Java 6 语法特性

在这里插入图片描述

其实 @Override 这个特性并不是很明显, 但是 spring 4 强制要求 Java 6, 因而如此分类.

Java 7 语法特性

在这里插入图片描述

其实spring 5 已经支持到 Java 8 了, 那么既然支持 Java 8 , 肯定也能向下支持到 Java 7.

Java 8 语法特性

在这里插入图片描述

同样也是 spring 5, 这里只是简单罗列了一个支持的特性.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值