為什么要用Spring Boot?


什么是Spring Boot?

  Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新 Spring 應用的初始搭建以及開發過程,該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。 Spring Boot默認配置了很多框架的使用方式,就像 Maven整合了所有的Jar包,Spring Boot整合了所有的框架。它的核心設計思想是∶約定優於配置,Spring Boot所有開發細節都是依據此思想進行實現的。

什么是約定優於配置?

  約定優於配置(Convention Over Configuration),也稱作按約定編程,是一種軟件設計范式,旨在減少軟件開發人員需做決定的數量、獲得簡單的好處,而又不失靈活性。

  本質是說,開發人員僅需規定應用中不符約定的部分。例如,如果模型中有個名為 User 的類,那么數據庫中對應的表就會默認命名為 user。只有在偏離這一約定時,例如將該表命名為"user info",才需寫有關這個名字的配置。我們可以按照這個思路來設想,我們約定 Controller 層就是 Web 請求層可以省略 MVC的配置;我們約定在 Service 結尾的類自動注入事務,就可以省略了 Spring 的切面事務配置。在 Spring 體系中,Spring Boot JPA就是約定優於配置最佳實現之一,不需要關注表結構,我們約定類名即是表名,屬性名即是表的字段,String 對應varchar,long 對應 bigint,只有需要一些特殊要求的屬性,我們再單獨進行配置,按照這個約定我們可以將以前的工作大大簡化。

  Spring Boot 體系將約定優於配置的思想展現得淋漓盡致,小到配置文件、中間件的默認配置,大到內置容器、生態中的各種 Starters無不遵循此設計規則。Spring Boot 鼓勵各軟件組織方創建自己的Starter,創建 Starter 的核心組件之一就是 autoconfigure模塊,也是 Starter 的核心功能,在啟動的時候進行自動裝配,屬性默認化配置。可以說正是因為 Spring Boot 簡化的配置和眾多的 Starters 才讓 Spring Boot 變得簡單、易用、快速上手,也可以說正是約定優於配置的思想徹底落地才讓 Spring Boot 走向輝煌。Spring Boot 約定優於配置的思想讓 Spring Boot 項目非常容易上手,讓編程變得更簡單,其實編程本該很簡單,簡單才是編程的美。

Starters

  Spring Boot Starters 基於約定優於配置的理念來設計,Spring Boot Starter 中有兩個核心組件∶ 自動配置代碼和提供自動配置模塊及其它有用的依賴。也就意味着當我們項目中引入某個 Starter,即擁有了此軟件的默認使用能力,除非我們需要特定的配置,一般情況下我僅需要少量的配置或者不配置即可使用組件對應的功能。Spring Boot 由眾多Starter 組成,隨着版本的推移 Starter 家族成員也與日俱增。在傳統 Maven 項目中通常將一些層、組件拆分為模塊來管理,以便相互依賴復用,在 Spring Boot 項目中我們則可以創建自定義 Spring Boot Starter 來達成該目的。

  Spring Boot 擁有強大融合社區開源軟件的能力,在沒有使用 Spring Boot 之前,我們需要按照每個開源軟件的特性,將對應的組件包集成到我們的開發項目中,因為每個組件的設計理念和開發團隊都不一致,因此會有很多不同的調用風格在我們的項目中。Spring Boot 整合了主流的開源軟件形成了一系列的 Starter,讓我們有了一致的編程體驗來集成各種軟件,Spring Boot 在集成的時候做了大量的優化,讓我們在集成的時候往往只需要很少的配置和代碼就可以完成。可以說各種 Starters 就是 Spring Boot 最大的優勢之一。Spring Boot 是一套全新的框架,它來自於 Spring大家族,因此 Spring 所有具備的功能它都有並且更容易使用;同時還簡化了基於 Sp ring 的應用開發,通過少量的代碼就能創建一個獨立的、產品級別的 Spring 應用。

Spring Boot 有哪些特性?

  1. 使用 Spring 項目引導頁面可以在幾秒構建一個項目;
  2. 方便對外輸出各種形式的服務,如 REST API、WebSocket、Web、Streaming、Tasks;
  3. 非常簡潔的安全策略集成;
  4. 支持關系數據庫和非關系數據庫;
  5. 支持運行期內嵌容器,如 Tomcat、Jetty;
  6. 強大的開發包,支持熱啟動;
  7. 自動管理依賴;
  8. 自帶應用監控;
  9. 支持各種 IDE,如 IntelliJ IDEA、NetBeans。

為什么學習 Spring Boot ?

  Spring Boot本身並不提供Spring框架的核心特性以及擴展功能,只是用於快速、敏捷地開發新一代基於Spring 框架的應用程序。同時它集成了大量常用的第三方庫配置(如 Redis、MongoDB、JP A、RabbitMQ、Quartz等),Spring Boot 應用中這些第三方庫幾乎可以零配置進行開箱即用,大部分的Spring Boot應用都只需要非常少量的配置代碼,開發者能夠更加專注於業務邏輯。

使用 Spring Boot 開發項目,有以下幾方面優勢∶

  • Spring Boot 使開發變得簡單,提供了豐富的解決方案,快速集成各種解決方案提升開發效率。
  • Spring Boot 使配置變得簡單,提供了豐富的 Starters,集成主流開源產品往往只需要簡單的配置即可。
  • Spring Boot 使部署變得簡單,其本身內嵌啟動容器,僅僅需要一個命令即可啟動項目,結合Jenkins、Docker 自動化運維非常容易實現。
  • Spring Boot 使監控變得簡單,自帶監控組件,使用 Actuator輕松監控服務各項狀態。

  從軟件發展的角度來講,越簡單的開發模式越流行,簡單的開發模式解放出更多生產力,讓開發人員可以避免將精力耗費在各種配置、語法所設置的門檻上,從而更專注於業務。這點上,Spring Boot已盡可能地簡化了應用開發的門檻。Spring Boot 所集成的技術棧,涵蓋了各大互聯網公司的主流技術,跟着 Spring Boot 的路線去學習,基本可以了解國內外互聯網公司的技術特點。

Spring、Spring Boot 和 Spring Cloud有什么關系?

  Spring最初核心的兩大核心功能 Spring loC和 Spring Aop 成就了Spring,Spring在這兩大核心功能上不斷地發展,才有了Spring事務、Spring MVC等一系列偉大的產品,最終成就了Spring帝國,到了后期 Spring 幾乎可以解決企業開發中的所有問題。

  Spring Boot是在強大的 Spring 帝國生態基礎上面發展而來,發明Spring Boot不是為了取代 Spring,是為了讓人們更容易的使用 Spring。所以說沒有 Spring強大的功能和生態,就不會有后期 Spring Boot 的火熱,Spring Boot使用約定優於配置的理念,重新重構了Spring 的使用,讓 Spring 后續的發展更有生命力。Spring Boot並沒有重復制造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過 Spring Boot風格進行再封裝並屏蔽掉復雜的配置和實現原理,最終給開發者提供了一套簡單易懂、易部署、易維護的分布式系統開發工具包。

  Spring Cloud是一系列框架的有序集合,它利用 Spring Boot的開發便利性巧妙地簡化了分布式系統基礎設施的開發。服務發現注冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以用 Spring Boot 的開發風格做到一鍵啟動和部署。Spring Cloud是為了解決微服務架構中服務治理而提供的具備一系列功能的開發框架,並且 Spring Cloud是完全基於Spring Boot 而開發,Spring Cloud利用 Spring Boot特性整合了開源行業中優秀的組件,整體對外提供了一套在微服務架構中服務治理的解決方案。

  綜上我們可以這樣來理解,正是由於 Spring loC和 Spring Aop 兩個強大的功能才有了Spring,Spring生態不斷的發展才有了Spring Boot,使用 Spring Boot讓Spring 更易用更有生命力,Spring Cloud是基於 Spring Boot 開發的一套微服務架構下的服務治理方案。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM