1. 程式人生 > >從spring4的新特性看未來的發展趨勢

從spring4的新特性看未來的發展趨勢

  幾周前,spring4已經正式release了,這意味著spring發展至今已經走過了10多個年頭,而且勢頭正猛。

  從官方釋出的release note來看,spring4一直在保持自己在業界的領頭地位,在spring4及其之前的子專案中,我們可以看出來,spring4正在趨向於支援產品化開發,大資料,雲以及微服務架構(MSA),mobile,另外,spring也開始全面支援java8的各種特性。

  比如最新的spring for apache hadoop,spring data(下面有mongodb, neo4j, redis, rest, solr),spring social就是用來支援雲和大資料的。

  spring mobile, spring for android就是用來支援移動開發的。

  在眾多新特性中,有幾個關鍵詞值得我們去關注,首先是微服務架構(MSA)。

  幾年前,為了解耦和更好的重用基礎架構及服務,提出了SOA這個概念,而當時對於SOA的實際技術支援是web service,然而web service很快被restful代替,原因是restful更加輕量容易;企業級的服務架構基於層次及模組(如圖,圖來源於文末文章,推薦閱讀),通常,一個這樣的架構需要提供出許多服務,比如,訪問 122.22.44.55/weather是一個服務,訪問122.22.44.55/report是另一個服務,實際上這兩個服務是部署在同一個應用下的。

   而微服務架構倡導將各個服務解耦,從而將許多現成的服務推到基礎設施。為什麼是基礎設施,因為趨勢就是以云為主的基礎設施和服務將慢慢佔據主導地位,越來越多的通用服務會被移到雲上,也就是說,雲會為我們處理更多的事情,從而使得應用架構更薄。因而微服務架構所提供的服務會更小,可能只有幾百行程式碼。

   微服務架構最為有用的地方是處理遺留系統的程式碼。很多時候,當我們無法修改遺留系統時,可以通過微服務作為代理放到遺留系統之前,從而暴露真正可用的服務,對於不可用服務,可以在微服務中重寫。


  另外是spring boot

  在學習spring之初大概最痛苦的地方是不能缺少他的context來執行,所以經常不知道從什麼地方得到注入的bean。spring boot提供了嵌入的無容器的執行時環境,這意味著,你只需要通過main函式就可以輕鬆執行spring了(之前當然也可以通過ClassPathXmlApplicationContext之類的來獲取並使用

),這種能力為上面的微服務架構做了更好的支撐,服務可以通過執行一個jar的方式輕鬆啟動。

  還有spring websocket

  websocket最近著實火了一把,html5領銜眾多瀏覽器支援這種全雙工的新的通訊方式,從而是我們的應用能夠得到更大的創新,在一些互動頻率較高且需要雙向通訊的領域,比如遊戲,股票將會湧現更多創造性的新應用。那麼服務端如何很好的去適應websocket所帶來的變化呢?spring websocket為你提供了必要的基礎,協議以及構建websocket風格的訊息架構,並且能夠繼承STOMP,spring mvc,輕量級的客戶端訊息代理如msgs.js