Spring 與 Spring Boot:Spring 和 Spring Boot 之間的區別

已發表: 2021-01-13

作為 Spring Framework 的擴展,Spring Boot 被廣泛使用,使在 Spring 上的開發更快、更高效、更方便。 在本文中,我們將看看使用 Spring Boot 時的一些參數可以大大減少應用程序開發所需的時間和精力。

目錄

什麼是春天?

簡單來說,Spring 是一個流行的集成框架,它為開發基於 Java 的應用程序提供了包羅萬象的基礎設施支持。 這個開源平台是輕量級、松耦合的,並帶有一些關鍵特性,包括依賴注入和麵向方面的編程。

依賴注入負責帶來鬆散耦合,而面向方面的編程有助於實現重要的橫切任務。

它還帶有各種專用於執行不同任務的模塊。 其中一些是 Spring Test、Spring Security、Spring Web、Spring JDBC、Spring AOP、Spring MVC 和 Spring ORM。

這些模塊中的每一個都有助於顯著減少應用程序開發所涉及的時間。 例如,樣板代碼——早期基於 Java 的開發需要大量樣板代碼才能將特定記錄插入數據源的簡單工作。 但是,現在當我們使用 JDBCTemplate 時,只需幾行代碼和一些小配置就可以完成相同的任務。

彈簧靴

Spring Boot 構建在 Spring 之上,是一個允許消除冗長的樣板配置的模塊,這些配置在應用程序的設置中至關重要。

Spring Boot 通過考慮 Spring 框架的固執觀點來運作,從而為更快、更高效的應用程序開發讓路。 自動配置是它最有用的功能。

它執行嚴格的指標和健康檢查,並負責外部配置。 為 Spring 的平穩運行啟用了自動配置。 它還嵌入了服務器,以減少應用程序部署的複雜性。

另請閱讀: 前 7 個令人興奮的 Spring Boot 項目和初學者主題

Spring 和 Spring Boot 的區別

在本節中,我們將仔細研究 Spring 框架和 Spring Boot 之間的主要區別。

1. 框架

Spring 是開源且輕量級的,適用於構建企業應用程序。 另一方面,Spring Boot 是 Spring 框架的擴展,適用於開發 REST API。 Spring 中的應用程序是鬆散耦合的,而 Spring Boot 是獨立的。

2. HTTP 基本認證

讓我們看看 Spring 和 Spring Boot 如何啟用它們的安全配置,即默認的 HTTP Basic 身份驗證。 這表明需要啟用幾個依賴項和配置才能啟用安全性。

對於 Spring,需要標準的 spring-security-web 和 spring-security-config 依賴項才能在應用程序中啟用默認的 HTTP Basic 身份驗證。

下一步是通過添加一個具有 WebSecurityConfigurerAdapter 的類來啟用 @EnableWebSecurity 註釋:

必須使用內存中的身份驗證來啟用安全性。

就像 Spring 一樣,即使在 Spring Boot 的情況下也必須包含這些依賴項。 但是,這可以通過僅定義 spring-boot-starter-security 依賴項來完成,該依賴項將自動處理其餘部分。

3. 最小依賴

Spring 在創建 Web 應用程序時需要一定數量的依賴項。 這些

<依賴>

<groupId>org.springframework</groupId>

<artifactId>spring-web</artifactId>

<version>5.2.9.RELEASE</version>

</依賴>

<依賴>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

<version>5.2.9.RELEASE</version>

</依賴>

另一方面,Spring Boot 可以讓應用程序只使用一個依賴項:

<依賴>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

<version>2.3.4.RELEASE</version>

</依賴>

在構建時還需要更多的依賴項,默認情況下這些依賴項會添加到最終存檔中。 即使在測試庫時,Spring 也會添加以下庫:

  • 莫基托
  • 彈簧測試
  • 漢克雷斯特和
  • JUnit

Spring Boot 有許多專門用於各種 Spring 模塊的啟動項目。 它們配備了每個模塊所需的庫。

因此,與 Spring 不同的是,Spring boot 在測試庫中只需要一個啟動器依賴項。

4. 彈簧配置

在本節中,我們將重點介紹 Spring 和 Spring Boot 構建 Web 應用程序 (JSP) 所需的配置。

對於 Spring,我們使用文件 web.xml 或 Initializer 類來定義調度程序 servlet,以及其他一些關鍵配置。

Spring 還要求註釋 @EnableWebMvc 可以被 @Configuration 類訪問,並聲明一個視圖解析器來解析控制器將返回的視圖。

在 Spring Boot 的情況下,添加 web starter 後,整個代碼可以被幾個屬性替換。 包含 Boot web starter 時會自動添加所需的配置。 此過程稱為自動配置:

spring.mvc.view.prefix=/WEB-INF/jsp/

spring.mvc.view.suffix=.jsp

簡而言之,Spring Boot 對所涉及的依賴項、配置和 bean 採取自以為是的觀點,並添加屬性以自動啟用所有這些。

但是,如果您想繼續進行自定義配置,您可以覆蓋 Spring Boot,這樣它就不會干擾。

5. 自舉

Servlet 是 Spring 和 Spring Boot 中應用程序引導的區別。

web.xml 或 SpringServletContainerInitializer 用作 Spring 的引導入口點。 而 Spring Boot 可以僅使用 Servlet 3 引導應用程序。

6. 部署

Spring 和 Spring Boot 的相似之處在於它們都支持 Maven 和 Gradle 等最常用於打包的技術。 但是,兩種框架的部署過程不同。

例如,Spring Boot Maven 插件在 Maven 中提供 Spring Boot 支持。 它還允許打包可執行的 jar 或 war 檔案並“就地”運行應用程序。

在部署方面,Spring Boot 與 Spring 相比有幾個優勢:

  • 支持嵌入式容器
  • 使用 java -jar 命令,jar 可以獨立運行。
  • jar 中的衝突可以通過刪除導致它的依賴項來避免。
  • 您可以定義活動配置文件
  • Spring Boot Maven 插件支持可執行 jar 或 war 存檔,並允許您“就地”運行應用程序
  • 通過隨機端口生成簡化集成測試

Spring Boot 相對於 Spring 的優勢

  1. 有一些默認配置有助於加快應用程序引導
  2. Spring Boot 採用自以為是的 Spring 'starter' 依賴項視圖,以實現更簡單、更高效的構建和應用程序配置
  3. 不匹配的版本沒有問題,因為有很多入門項目可以輕鬆集成。 其中一些包括 spring-boot-starter-web、spring-boot-starter-data-jpa、spring-boot-starter-test、spring-boot-starter-security、spring-boot-starter-thymeleaf。
  4. 與需要顯式服務器來運行應用程序的 Spring 相比,像 tomcat 或 jetty 這樣的嵌入式服務器使執行更容易
  5. 您避免了樣板代碼,這可以減少時間並提高生產力。 Spring 應用程序需要太多的代碼行
  6. Spring Boot 不需要像 Spring 這樣的部署描述符

從世界頂級大學在線學習軟件課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

結論

Spring Boot 包含了傳統 Spring 的所有特性,並且使開發應用程序變得更加容易。 由於所有 Spring Boot 屬性都是自動配置的,因此與 Spring 相比,您可以在更短的時間內啟動並運行應用程序。

如果您有興趣了解有關 Spring Boot、全棧軟件開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發執行 PG 計劃,該計劃專為工作專業人士設計,提供 500 多個小時的嚴格培訓,9 + 項目和任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。

Java 中的 Spring Boot 是什麼?

Spring Boot 是一個 Web 應用程序框架,類似於 Spring MVC,可以更輕鬆地創建 Web 應用程序。 它旨在利用 Java 平台的新特性,如 Java 8。Spring Boot 是高度固執己見的,這意味著開發人員不必花時間思考典型的代碼來完成工作。 Spring Boot 基於 Spring MVC 和 Spring Data 構建,但與它們不同的是,它不需要 XML 配置文件,它是強類型的,並且會根據類路徑中的內容自動配置自身。 開發人員只需要編寫一個帶有@SpringBootComponent 註解的類,Spring Boot 就會將其註冊為組件並創建一個 Spring 上下文並進行自我配置。 這是使用 Spring Boot 的主要優勢,因為它減少了啟動和創建可行示例應用程序所需的時間。

Spring中的依賴注入是什麼?

Spring 和 Spring Boot 有什麼區別?

Spring是一個Java應用框架; Spring Boot 是 Spring 的輕量級版本。 換句話說,Spring Boot 是 Spring 的一個子集,創建它是為了更方便地創建基於 Spring 的微服務。 Spring Boot 是一個免費、開源、超快速的微服務創建框架。 它使用相同的 Spring 編程模型,但它允許您以更少的依賴項更快地開始。 Spring Boot 提供了創建獨立 (Spring Boot Starter) 微服務所需的所有支持,它也是服務器端 Java Web 應用程序的良好基礎。