概述
Spring 與 SpringBoot 有什么區別???梳理一下 Spring 和 SpringBoot 到底有什么區別,從 Spring 和 SpringBoot 兩方面入手。
Spring
什么是 Spring?在我看來,Spring 作為一款 Java 開發的必選框架,也是一款“膠水”框架,它解決了 Java 企業級開發的復雜度問題,所謂的復雜度問題,就是耦合度問題。
傳統開發需要開發人員手動管理對象關系和生命周期,Spring 框架提出了兩大核心:IOC 與 AOP。有效的管理了開發中對象的生命周期問題,也提供了與很多框架整合的工具。
但是,Spring 最大的弊端,需要大量的 XML 配置,不管項目整體大小,都需要大量的配置文件搭建架構。
Spring框架為開發Java應用程序提供了全面的基礎架構支持。它包含一些很好的功能,如依賴注入和開箱即用的模塊,如:
Spring JDBC 、Spring MVC 、Spring Security、 Spring AOP 、Spring ORM 、Spring Test
這些模塊大家應該都用過吧,這些模塊縮短應用程序的開發時間,提高了應用開發的效率
SpringBoot
SpringBoot 可以看作是對 Spring 框架的擴展,可以快速搭建獨立的 Spring 應用程序。
它內嵌了 Tomcat,Jetty 等容器,項目是一個 jar 包,通過 Application 入口類快速運行整個項目,提供了 Pom 簡化 Maven 的配置,避免了項目包與包的沖突,對第三方技術做了很好的封裝。
我認為最重要的一點是,減少了大量的 XML 配置。SpringBoot 基於約定優於配置的理念,原先大量的配置都可以省去,並且不推薦 XML 配置,改為 Java 配置。主要的配置可以寫在 apaplication.properties 文件中。
除了 application.properties 文件,還支持 yaml 格式的 application.yml 和 bootstrap.yml
差別在於配置文件的加載順序不同。
Spring Boot 配置文件的加載順序是 bootstrap.properties -> bootstrap.yml -> application.properties -> application.yml
以下是Spring Boot中的一些特點:
1:創建獨立的spring應用。
2:嵌入Tomcat, Jetty Undertow 而且不需要部署他們。
3:提供的“starters” pom來簡化Maven配置
4:盡可能自動配置spring應用。
5:提供生產指標,健壯檢查和外部化配置
6:絕對沒有代碼生成和XML配置要求
7. 通過starter和依賴管理解決依賴問題。
8. 通過自動配置,解決配置復雜問題。
拓展:
Spring 是怎樣引導配置的呢?
Spring支持傳統的web.xml引導方式以及最新的Servlet 3+方法。
讓我們看一下 web.xml方法的步驟:
Servlet容器(服務器)讀取web.xml
web.xml中定義的DispatcherServlet由容器實例化
DispatcherServlet通過讀取WEB-INF / {servletName} -servlet.xml來創建WebApplicationContext
最后,DispatcherServlet注冊在應用程序上下文中定義的bean
SpringBoot 又是如何配置的呢?
Spring Boot應用程序的入口點是使用@SpringBootApplication注釋的類:
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
默認情況下,Spring Boot使用嵌入式容器來運行應用程序。在這種情況下,Spring Boot使用public static void main入口點來啟動嵌入式Web服務器。此外,它還負責將Servlet,Filter和ServletContextInitializer bean從應用程序上下文綁定到嵌入式servlet容器。
Spring Boot的另一個特性是它會自動掃描同一個包中的所有類或Main類的子包中的組件。
結論
簡而言之,我們可以說Spring Boot只是Spring本身的擴展,使開發,測試和部署更加方便。
原文鏈接:https://blog.csdn.net/qq_36525300/article/details/102886871
https://blog.csdn.net/weixin_34177064/article/details/93029720