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語法的特性這也告訴咱們一個道理,就是不管作技術仍是業務,咱們都要與時俱進

相關文章
相關標籤/搜索