- Spring Boot實戰:從0開始動手搭建企業級項目
- 十三
- 2214字
- 2021-08-13 19:43:30
2.2 選擇Spring Boot
2.2.1 Spring Boot的理念
關于Spring Boot框架的理念,可以通過Spring官網探知一二,如圖2-4所示。

圖2-4 Spring Boot的理念
在該頁面中,官方毫不吝嗇對于Spring Boot的贊美之詞,也極力推薦開發人員使用Spring Boot升級Java項目的代碼。同時,也引用了Netflix高級開發工程師的話:“I'm very proud to say, as of early 2019, we've moved our platform almost entirely over to Spring Boot.”其中的含義不言自明。
官方也在不斷鼓勵開發人員使用Spring Boot,并使用Spring Boot“升級”項目代碼進而達到優化Java項目的目的。圖2-4已經是改版后的Spring官網,比之前的話術略微有一些收斂。在2018年Spring的官網中,官方對于Spring Boot的描述是“Spring Boot BUILD ANYTHING!”
翻譯過來就是“用Spring Boot構造一切!”
彼時的官網如圖2-5所示。Spring Boot位于Spring三個重量級產品的第一位,可以看出Spring官方也非常重視Spring Boot的發展。
使用Spring Boot的目的在于用最少的Spring預先配置,讓開發人員盡快構建和運行應用,最終創建產品級的Spring應用和服務。

圖2-5 2018年Spring官網對于Spring Boot框架的描述文案
2.2.2 Spring Boot可以簡化開發
“當你終于把Spring的XML配置文件調試完成的時候,我已經用Spring Boot開發好N個功能了。”
這可不是一句玩笑話,相信熟悉Spring開發項目的讀者都深有體會。無論Spring框架的初學者還是具有經驗的開發人員,對Spring項目的配置文件多少都會感到頭痛,尤其在項目日漸龐大之后,紛繁復雜的XML配置文件讓開發人員十分頭痛。在一個項目開發完成后,這種痛苦也許會消除,但是一旦接手新項目,又要復制、粘貼一些十分雷同的XML配置文件,周而復始地進行這種枯燥死板的操作讓人不勝其煩。
Spring Boot解決了這個問題。Spring Boot通過大量的自動化配置等方式簡化了原Spring項目開發過程中編碼人員的配置步驟。其中,大部分模塊的設置和類的裝載都由Spring Boot預先做好,從而使得開發人員不用再重復地進行XML配置,極大地提升了開發人員的工作效率。開發人員可以更加注重業務的實現而不是繁雜的配置工作,從而可以快速地構建應用。
框架的封裝和抽象程度的完善,也使得代碼的復用性更高、項目的可維護性提高、開發和學習成本降低,能加快開發進度并最終形成行業開發標準。從這個角度來說,越簡潔的開發模式就越能減輕開發人員的負擔并提升開發效率,行業內普遍認可并接受的框架也會越來越流行,并最終會形成一套讀者都認可的開發標準。Spring Boot就正在逐漸改變原有的開發模式,形成行業認可的開發標準。
2.2.3 Spring Boot的特性
1. 繼承Spring的優點
Spring Boot來自Spring家族,因此Spring所有具備的功能和優點,Spring Boot同樣擁有。官方還對Spring Boot做了大量的封裝和優化,從而使開發人員更容易上手和學習。相對于Spring來說,使用Spring Boot完成同樣的功能和效果,開發人員需要操作和編碼的工作更少了。
2. 可以快速創建獨立運行的Spring項目
Spring Boot簡化了基于Spring的應用開發,通過少量的代碼就能快速構建一個個獨立的、產品級別的Spring應用。
Spring Initializr方案是官方提供的創建新Spring Boot項目的不錯選擇。開發人員使用官方的初始化方案創建Spring Boot項目能夠確保獲得經過測試和驗證的依賴項,這些依賴項適用于自動配置,能夠極大簡化項目創建流程。同時,IDEA和STS編輯器也支持這種直接初始化Spring Boot項目的方式,使開發人員在一分鐘之內就可以完成一個項目的初始化工作。
3. 習慣優于配置
Spring Boot遵循習慣優于配置的原則,在使用Spring Boot后開發人員只需要很少的配置甚至零配置即可完成項目開發,一般使用Spring Boot默認配置即可。
4. 擁有大量的自動配置
自動進行Spring框架的配置,可以節省開發人員大量的時間和精力,能夠讓開發人員專注在業務邏輯代碼的編寫上。
5. starter自動依賴與版本控制
Spring Boot通過一些starter的定義可以減少開發人員在依賴管理上所花費的時間。開發人員在整合各項功能的時候,不需要自己搜索和查找所需依賴,但可以在Maven的pom文件中進行定義。starter可以簡單理解為“場景啟動器”,開發人員可以在不同的場景和功能中引入不同的starter。如果需要開發Web項目,就在pom文件中導入spring-boot-starter-web。在Web項目開發中所需的依賴都已經維護在spring-boot-starter-web中,無須再導入Servlet、Spring MVC等所需要的jar包。項目中如果需要使用JDBC,在pom文件中導入spring-boot-starter-jdbc即可。針對其他企業級開發中遇到的各種場景,Spring Boot都有相關的starter。如果沒有對應的starter開發人員也可以自行定義。
使用Spring Boot開發項目可以非常方便地進行包的管理,所需依賴以及依賴jar包的關系和版本都由starter自行維護,在很大程度上減少了維護依賴版本所造成的jar包沖突或者依賴的版本沖突。
Spring Boot官方stater的詳細內容可以參考“Spring Boot-starter-*”。
6. 使用嵌入式的Servlet容器
Spring Boot直接嵌入Tomcat、Jetty或者Undertow作為Servlet容器,降低了對環境的要求,在開發和部署時都無須安裝相關Web容器,調試方便。在開發完成后可以將項目打包為jar包,并使用命令行直接啟動項目,從而簡化部署環節打包并發布到Servlet容器中的流程。
使用嵌入式的Servlet容器使得開發調試環節和部署環節的工作量有所減少,同時開發人員也可以通過Spring Boot配置文件修改內置Servlet容器的配置,簡單又靈活。
7. 對主流框架無配置集成,使用場景全覆蓋
Spring Boot集成的技術棧豐富,不同公司使用的技術框架大部分可以無配置集成,即使不行,也可以通過自定義spring-boot-starter進行快速集成。這就意味著Spring Boot的應用場景非常廣泛,包括常見的Web、SOA和微服務等應用。
在Web應用中,Spring Boot提供了spring-boot-starter-web來為Web開發予以支持。spring-boot-starter-web為開發人員提供了嵌入的Tomcat和Spring MVC的依賴,可以快速構建MVC模式的Web工程。在SOA和微服務中,用Spring Boot可以包裝每個服務。Spring Cloud即是一套基于Spring Boot實現分布式系統的工具,適用于構建微服務。Spring Boot提供了spring-boot-starter-websocket來快速實現消息推送,同時也可以整合流行的RPC框架,提供RPC服務接口(只要簡單加入對應的starter組件即可)。
從以上各個特性可以看出,Spring Boot可以簡化Spring項目開發過程中冗余復雜的流程。另外,引入spring-boot-start-actuator依賴并進行相應的設置可獲取Spring Boot進程的運行期性能參數,讓運維人員也能體驗到Spring Boot的魅力。
- Boost.Asio C++ Network Programming(Second Edition)
- C語言程序設計案例教程
- C++程序設計(第3版)
- Java 開發從入門到精通(第2版)
- Java 9 Programming Blueprints
- 面向對象程序設計(Java版)
- Learning Concurrent Programming in Scala
- C# Multithreaded and Parallel Programming
- 計算機應用基礎教程(Windows 7+Office 2010)
- 微信小程序開發實戰:設計·運營·變現(圖解案例版)
- Arduino可穿戴設備開發
- Mastering Apache Camel
- Spring Data JPA從入門到精通
- 3ds Max 2018從入門到精通
- 例說FPGA:可直接用于工程項目的第一手經驗