首頁 >Java >Java基礎 >spring boot是什麼?

spring boot是什麼?

青灯夜游
青灯夜游原創
2022-11-29 11:46:4438778瀏覽

Spring Boot是由Pivotal團隊提供的基於Spring的框架,該框架使用了特定的方式來進行配置,使開發人員不再需要定義樣板化的配置。 Spring Boot整合了絕大部分目前流行的開發框架,就像Maven整合了所有的JAR套件一樣,Spring Boot整合了幾乎所有的框架,使得開發者能快速建立Spring專案。

spring boot是什麼?

本教學操作環境:windows7系統、java8版、DELL G3電腦。

Spring Boot 是由 Pivotal 團隊提供的基於 Spring 的全新框架,旨在簡化 Spring 應用的初始搭建和開發流程。該框架使用了特定的方式來進行配置,使開發人員不再需要定義樣板化的配置。

Spring 官網給的定義是:Spring Boot 是所有基於 Spring 開發專案的起點。 Spring Boot 整合了絕大部分目前流行的開發框架,就像 Maven 整合了所有的 JAR 套件一樣,Spring Boot 整合了幾乎所有的框架,使得開發者能快速建立 Spring 專案。

Spring Boot 的核心設計想法是「約定優於配置」。基於這個設計原則,Spring Boot 大大簡化了專案和框架的配置。例如在使用 Spring 開發 Web 專案時,我們需要設定 web.xml、Spring 和 MyBatis 等,也需要將它們整合在一起。而使用 Spring Boot 一切將變得極其簡單,它採用了大量的預設配置來簡化這些檔案的配置過程,只需引入對應的 Starters(啟動器)。

Spring Boot 可以建立一切。設計它就是為了使用最少的配置,以最快的速度來啟動和運行 Spring 專案。

Spring Boot的背景

多年來,隨著 Spring 的快速發展,新功能不斷增加,Spring 變得越來越複雜。

透過訪問Spring 官網就可以看到Spring 的所有子項目和組件框架,如此多的子項目和組件使得Spring 逐漸笨重起來,這顯然已經無法適應雲端運算和微服務時代的發展趨勢。

於是 Spring Boot 應運而生。 Spring Boot 建立在Spring 基礎之上,遵循「約定優於配置」的原則,避免了創建專案或框架時必須做的繁雜配置,幫助開發者以最少的工作量,更加簡單、方便地使用現有Spring中的所有功能組件。

Spring Boot的特性

Spring Boot 的一系列特性使得微服務架構的落地變得非常容易,對於目前眾多的技術棧,Spring Boot 是Java領域微服務架構的最優落地技術。

下圖所示為Spring Boot 的一些特性:

spring boot是什麼?
圖1 Sprint Boot 的特性

Spring Boot的核心元件

Spring Boot 官方提供了許多當前流行的基礎功能元件的封裝,命名一般以spring-boot-starter 開頭,例如spring-boot-starter-quartz 定時任務元件和spring-boot-starter-thymeleaf 頁面模板引擎等。

另外,由於Spring Boot 的流行,許多第三方中間件也依照Spring Boot 的規範提供了針對Spring Boot 專案的Starters(啟動器),一般以元件名稱開頭,例如MyBatis 針對Spring Boot 提供的組件包mybatis-spring-boot-starter。

Spring Boot 的核心元件如下圖所示:

spring boot是什麼?
#圖 2 Spring Boot的核心元件

Spring Boot的優點

Spring Boot 繼承了Spring 一貫的優點和特性,同時增加了一些新功能和新特性,這讓Spring Boot 非常容易上手,也讓程式設計變得更加簡單。

總結起來Spring Boot有以下幾個優點:
  • 遵循「約定優於配置」的原則,使用 Spring Boot 只需要很少的配置或使用預設的配置。
  • 使用 JavaConfig,避免使用 XML 的煩瑣。
  • 提供 Starters(啟動器),簡化 Maven 配置,避免依賴衝突。
  • 提供內嵌 Servlet 容器,可選擇內嵌 Tomcat、Jetty 等容器,不需要單獨的 Web 伺服器。這意味著不再需要啟動 Tomcat 或其他任何中間件。
  • 提供了一系列專案中常見的非功能特性,如安全監控、應用監控、健康檢測等。
  • 與雲端運算、微服務的天然整合。

從軟體發展的角度來講,越簡單的開發模式越流行,越有活力,其可以讓開發者將精力集中在業務邏輯本身,提高軟體開發效率。 Spring Boot 就是盡可能簡化應用程式開發的門檻,讓應用程式開發、測試、部署變得更簡單。

為什麼學習Spring Boot

最近幾年,Spring 生態圈最受歡迎的技術框架莫過於 Spring Boot 和 Spring Cloud。目前,各企業都在推動微服務技術架構的落地,將一個複雜的應用拆分成多個小的獨立模組,分開部署,互不干擾,從而達到鬆散耦合、提高開發效率和降低運維成本的目的。

Spring Boot 作為微服務框架的基礎被越來越多地應用於企業級開發中,它是 Spring Cloud 的基礎。要學習 Spring Cloud,就必須了解 Spring Boot 框架的架構和設計理念。

Spring Boot 是 Spring 生態下的一個子項目,用於快速、敏捷地開發新一代基於 Spring 框架的應用程式。同時,它將目前各種比較成熟的服務框架和第三方元件組合起來(如 Redis、MongoDB、JPA、RabbitMQ、Quartz 等),按照「約定優於配置」的設計想法封裝成 Starters 元件。這樣,我們在 Spring Boot 應用中幾乎可以零配置地使用這些元件,達到開箱即用的效果,從而從繁雜的配置中解放出來,更加專注於業務邏輯的開發。

Spring Boot 的優點可以概括為以下幾個方面:
  • 快速構建:使用Spring Initializr 可以快速創建項目,同時提供了豐富的解決方案,便於快速集成各種解決方案,提升開發效率。
  • 簡化依賴:提供豐富的 Starters,簡化 Maven 配置,避免版本相容問題。
  • 一鍵部署:內嵌 Servlet 容器,如 Tomcat、Jetty,能夠直接打包成可執行 JAR 檔案獨立運行,支援 Jenkins、Docker,輕鬆實現自動化運作。
  • 應用程式監控:自備 Actuator 監控元件,輕鬆監控服務的各項狀態。使用 Spring Boot Admin 可以輕鬆部署功能完善的應用程式監控系統。

總的來說,Spring Boot 讓建置、編碼、配置、部署、監控都變得非常簡單。 Spring Boot 可以說是近年來 Spring 社群甚至整個 Java 社群非常有影響力的計畫之一。

初次學習 Spring Boot 的讀者,千萬不要把它想得太複雜。 Spring Boot 不是新的語言、新的技術,它只是把現有的比較流行的框架整合在一起,遵循「約定優於配置」的原則,開箱即用,使得我們不需要再去關注那些煩瑣的配置。有了這個概念之後,就可以帶著輕鬆的心情去學習 Spring Boot。

什麼是“約定優於配置”

我們知道Spring Boot 的核心設計思想是“約定優於配置”,Spring Boot 提供的所有Starters 都是遵循這一想法實現的。那麼,究竟什麼是「約定優於配置」呢?

“約定優於配置”也被稱為“按約定編程”,是一種軟體設計範式,旨在減少軟體開發者需要的配置項,這樣既能使軟體保持簡單而又不失靈活性。

本質上來說,系統、類別庫或框架應該約定合理的預設值,開發者只需規定應用中不符合約定的部分。例如,如果模型中有一個名為 Product 的類,那麼資料庫中對應的表就會預設命名為 product,只有在偏離這個約定時才需要定義有關這個名字的配置,例如將該表命名為 product_info。

簡單來說「約定優於配置」就是遵循約定。如果你所用工具的約定配置符合你的要求,那麼就可以省去此配置;不符合,就透過修改相關的配置來達到你所期待的方式。

「約定優於配置」不是新的概念,許多框架使用了「約定優於配置」的設計範式,包括 Maven、Spring、Grails、Grok、Apache Wicket 等。

Spring Boot 是 Spring 對「約定優於配置」的最佳實務產物。小到設定檔、中間件的預設配置,大到內建容器、Spring 生態中的各種 Starters,無不遵循「約定優於配置」的設計想法。正是因為簡化的配置和眾多的 Starters,才讓 Spring Boot 變得簡單、易用、容易上手,也正是「約定優於配置」的設計思想的徹底落地,才讓 Spring Boot 走向輝煌。

Spring、Spring Boot和Spring Cloud的關係

隨著 Spring、Spring Boot 和 Spring Cloud 的不斷發展,越來越多的開發者加入 Spring 的大軍中。對於初學者而言,可能不太了解 Spring、Spring Boot 和 Spring Cloud 這些概念以及它們之間的關係,下面我們一起來捋一捋。

Spring 是一個開源生態體系,是集大成者。其核心是控制反轉(Inversion of Control,IoC)和麵向切面程式設計(Aspect Oriented Programming,AOP)。正是IoC 和AOP 這兩個核心功能成就了強大的Spring,Spring 在這兩大核心功能上不斷地發展壯大,才有了Spring MVC 等一系列成熟的產品,最終構建了功能強大的Spring 生態帝國。

Spring Boot 是在 Spring 的基礎上發展而來的,它不是為了取代 Spring,而是為了簡化 Spring 應用的創建、運行、調試、部署,讓開發者更容易使用 Spring。它將目前各種比較成熟的服務框架和第三方組件組合起來,按照「約定優於配置」的設計思想進行重新封裝,屏蔽掉複雜的配置和實現,最終給開發者一套簡單、易用、易部署、易於維護的分散式系統開發工具包。

Spring Cloud 是基於Spring Boot 實現的分散式微服務框架,它利用Spring Boot 簡單、易用、便利的特性簡化了分散式系統基礎設施的開發,如服務發現、服務註冊、配置中心、訊息匯流排、負載平衡、斷路器、資料監控等基礎元件都可以用Spring Boot 的開發風格做到一鍵啟動和部署。

我們都知道,採用微服務架構,服務的數量會非常多,管理特別麻煩,而 Spring Cloud 就是一套分散式微服務治理框架,可以說是這些微服務的大管家。身為大管家 Spring Cloud 就需要提供各種元件和方案來治理與維護整個微服務系統,例如服務之間的通訊、熔斷、監控等。 Spring Cloud 利用 Spring Boot 的特性整合了開源產業中優秀的元件,在微服務架構中對外提供了一套服務治理的解決方案。

Spring Boot 在 Spring Cloud 中扮演了承上啟下的作用,如果要學習 Spring Cloud,則必須學習 Spring Boot。三者之間的關係如下圖所示。

spring boot是什麼?

圖3 Spring、Spring Boot和Spring Cloud的關係

我們可以這樣理解:正是由於IoC 和AOP 這兩個強大的功能才有了強大的Spring;Spring 生態不斷地發展才有了Spring Boot;Spring Boot 開發、部署的簡化,使得Spring Cloud 微服務治理方案徹底落地。

更多程式相關知識,請造訪:程式設計教學! !

以上是spring boot是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn