1. 程式人生 > >SpringCloud實戰小貼士:版本依賴關係

SpringCloud實戰小貼士:版本依賴關係

去年在部落格上連載了《Spring Cloud構建微服務架構》的系列博文,雖然這部分內容得到了不少關注者們的支援,但是不得不說這些內容只是適用於Spring Cloud入門階段對各個元件的初步認識。所以,今年除了將會繼續更新《Spring Cloud構建微服務架構》系列的連載之外,準備再開一個新系列:《SpringCloud實戰小貼士》,該系列文章內容將會聚焦在下面三個點上:

  • 常見問題的解析
  • 構建使用的技巧
  • 實戰設計的思考

開篇:Spring Cloud的版本依賴關係

之前在《聊聊Spring Cloud版本的那些事兒》一文中,我們已經介紹了Spring Cloud版本命名的由來以及版本號的規則,並列舉了各個版本的依賴內容,以幫助我們選擇合適的版本進行微服務實踐。

由於Spring Cloud的發展速度非常快,版本的更新非常頻繁,同時成體系化的中文文件與教程又比較缺乏,所以很多初學者在搜尋了網上的文章進行Spring Cloud的初次嘗試時,經常會因為沒有關注它的版本依賴關係而引發一些問題。比如平時被問最多的一個問題,在使用Feign的時候為什麼報瞭如下錯誤:

org.springframework.core.annotation.AnnotationConfigurationException: Attribute 'value' in annotation [org.springframework.cloud.netflix.feign.FeignClient] must be declared as an @AliasFor [serviceId], not [name].

由於《Spring Cloud構建微服務架構》系列博文的例子都採用了Brixton版本,在介紹《Spring Cloud構建微服務架構(二)服務消費者》中的Feign時候也使用了它,而該版本的基礎Spring Boot版本是1.3.x,很多初學者可能因為一些原因,比如:現有應用使用Spring Boot 1.4.x實現或者自身喜歡緊跟潮流,這個時候就會出現上面的問題。

所以,我們在選擇Spring Boot與Spring Cloud版本的時候,還是需要儘可能的按照Spring Cloud官方版本依賴關係來使用:

  • Angel版本對應Spring Boot 1.2.x
  • Brixton版本對應Spring Boot 1.3.x
  • Camden版本對應Spring Boot 1.4.x

就個人而言,推薦使用目前最新的Camden版本與Spring Boot 1.4.x的組合。首先,不光光是Spring Boot版本提升帶來的一些新功能,另外也由於Spring Cloud的元件版本也有提升,比如Brixton版本中的Spring Cloud Netflix採用了1.1.x,而Camden中採用了1.2.x,這兩個版本之間還有不少區別的,在1.2.x中提供了更多實用功能,比如:之前在《為Spring Cloud Ribbon配置請求重試(Camden.SR2+)》一文中提到的RestTemplate的請求重試、關於Zuul的一些頭資訊優化等。

更多Spring Boot與Spring Cloud學習與實戰內容可掃下面的二維碼關注我,第一時間獲得本部落格的更新推送。

1240
程式猿DD的技術分享