Java语言特性运用:各类Java语法特性是怎样被Spring各类版本巧妙运用的?

Spring为何在不一样版本会有不一样的支持,其实就是为了寻求最大的公约数,好比说尽量迎合更多的版本,所Spring的支持对Java的支持就是比较靠前的,可是对版本的要求是靠后的,那就是由于在升级版本的时候你们可能不会把JDK不断低往高版本升级,从稳定性或者说从易用性的角度来说这是可取的
后端

图片

这里简单介绍从Java 5到 Java 10的分布变迁,主要说明Java5以后的一些变化数组


Java5 ide

2004年 Java 5 也正是Spring Framework 发布年代,Spring 在支持的的时候只须要支持到Java 1.3不须要到1.5 可是要考虑到1.5的支持 ,好比后的Spring1.2的时候知道JMX也就是咱们Java 管理拓展,也就是 Java Management extensions 这个拓展。这个版本的分布就包含这些特性:枚举、范型、注解、封箱和拆箱这些特性模块化


Java6spa

2006年Java 6 其实没有在Java 5基础上作支持,好比:Java 6 发布之后,只容许在接口上面使用@override这么一个注解,过去是能够在类上面打的,这个注解强制要求子类或者子接口覆盖父类或者父接口的那个方法,这部分特性其实在Spring里面体现的不是特么明显,同时咱们用的时候也感知不到 设计


Java7blog

2011年 Java 7发布,对于Java 7主要两大特色,第一个是Diamond语法,可能你们不太了解什么是Diamond语法,Diamond简单的意思就是在咱们用集合的时候,咱们要用到范型类型,好比:LIst ,它的集合元素类型是String ,那么在new 数组实现的时候,String 里面括号的东西可写可不写 ,不写就是Diamond语法,写就不是Diamond语法,也就是Java 7以前的语法;还有一个是多Catch,就是多个异常捕捉的时候只须要一个捕获;还有一个是Try resource,一个专业术语叫作ARM(Automatic Resource Management)就是所谓的自动的资源的一个管理 ,好比说:咱们在关闭IO的时候,咱们要调用一个Close 方法 ,那么经过try-with-resource以后能够不用强制去调用IO,其实这只是语法方面的变化,底层仍是会经过动态字节码生成,生成一个Close 方法来调用接口


Java8图片

2014年 Java 8 发布,Java 8 有一个显著的特性就是支持Lambda语法以及重复性注解,Lamdba语法作后端开发的目前应该都用到了,这里不作赘述;那么可重复性注解是什么意思?细心的人应该能注意到一个注解只能在一个类或者一个方法里面标注一次,那么从Java 8 开始能够一个类或者一个方法里面能够标注多个注解 ,这就是所谓的可重复性注解;还有一个就是类型注解,这是一个新的注解方法,在Spring 里面体现的并非不少 后端开发


Java9 ~Java 10

2017年 Java 9发布, 从Java 9到Java 10 ,Spring并无提供Java 9 和 Java 10以后的语法的或则API 的支持,由于考虑到Java 9 模块化设计实现以后,其实Java 社区产生必定的分裂,仍是保留Java 8版本多是一个常态 ,或者Java 9 和 Java 10 这种短时间支持版本不会长存,可能会寻找更能长久支持的版本


下面主要针对Spring每一个版本针对Java版本支持作下简单举例

图片

图片

图片

总结

上面主要讲述和说明Java各类语法在Spring 各版本的运用,能够发现一个问题;上一篇中提到Spring的一个发布状况和依赖版本,这里就体现得淋淋尽致,因为Spring 每一个版本对Java 要求的版本不一样,因此实现的语法特性也不同,这也是Spring 的优势,不管JDK怎么升级,咱们会一般遇到JDK升级后会有一些代码没法编译,Spring作到了与时俱进强迫本身的代码实现,升级到最新的Java语法的特性这也告诉咱们一个道理,就是不管作技术仍是业务,咱们都要与时俱进

相关文章
相关标签/搜索