搜尋
首頁JavaJava基礎spring boot是什麼?

spring boot是什麼?

Nov 29, 2022 am 11:46 AM
springspring boot

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器