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