Spring Boot 1 和 Spring Boo 2的差別

有差別,但差別不大。基本上基於SpringBoot的代碼不需要改動,但有些配置屬性和配置類,可能要改動,改動原因是

配置已經不存在或者改名 類已經不存在改名

聽着挺嚇人,但我實際切換過程中改動的地方很少。一般正常的MVC,數據庫訪問這些都不需要改動,下面按照我寫的《Spring Boot 2精髓:從構建小系統到架構分佈式大系統》本書章節說明我曾碰到的區別

  • 第1章,SpringBoot 2基於Spring5和JDK8,而Spring 1x則用的是JDK7,因此你的應用服務必須支持JDK8
  • 第2章,無區別,使用SpringBoo2,建議使用較新的Maven版本,以及較新的JDK,尤其是IDE工具,以免Maven在IDE裏的視圖報出警告信息
  • 第3章:MVC部分,有些定製類改動了,比如WebMvcConfiguer,由抽象類改爲接口,這是因爲JDK8對接口有新的支持形式,3.8章提到的統一錯誤處理,基類AbstarctErrorController也改動非常大,請參考書中描述的知識點。MVC裏的視圖渲染Freemaker視圖解析器也有改動,默認情況下,它會自動加上ftl來來尋找模板
  • 第4章:關於Beetl,無改動,請使用新版本即可
  • 第5章,無改動,JDBCTemplate和BeetlSQL均可以使用
  • 第6章,JPA中,findById 返回了一個Optional對象,改動較大,會直接影響所有業務代碼,Page代碼接口也有調整。
  • 第7章,SpringBoot配置,web應用的ContextPath 配置屬性已經改動,可以參考本文章的7.1.1 說明。另外配置文件的中文可以直接讀取,而不需要轉碼。另外,自動裝配裏Boot提供的JavaVersion類報名改動了。根據jdk版本自動裝配的需要調整代碼。在配置文件中出現中文,到了Spring Boot 2 ,不需要轉碼
  • 第8章,部署SpringBoot無改動
  • 第9章,測試SpringBoot無改動
  • 第10章,無改動,但Swagger UI變化較大。除了參考本書外,還需要密切注意Sawgger的最新特性
  • 第11章, MongDB,無變化
  • 第12章,Redis 無變化
  • 第13章,ElasticSearch,無改動,應該說SpringBoot2做的更好了。需要密切注意Elastic Search本身版本變化,它也是版本帝,Spring Boot略有點根本上。因此不能擔保在因爲Elastci Search的RESTAPI變化導致Spring Boot不兼容,所以一定要使用Spring Boot指定的版本
  • 這裏是列表文本第14章,基本無改動,但內部CacheManager和Cache的接口改動,因此緩存機制內部變化較大,書裏提到的一二級分佈式緩存實現方式變化就比較大
  • 第15章,SpringSession 無變化
  • 第16章,由於本書將的是用Curator集成Spring Boot,所以無變化
  • 第17章,Acutator,本章SpringBoot1.x和2變化較大,默認情況,不再啓用所有監控,另外編寫自己監控信息,完全需要重寫,HealthIndicator,EndPoint 變化很大

當然最根本差別還是Spring5 和 JDK8了,我公司就爲是否因爲使用JDK8而爭論了多次.....

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章