Spring Boot 建立在 Spring 的基礎之上,包含 Spring 的所有功能。如今,Spring Boot 已成為開發人員的最愛,因為其快速的環境配置特性可讓開發人員直接專注於邏輯,而不是糾結於配置和設定。Spring Boot 是一個基於微服務的框架,用它開發一個為服務專案只需很短的時間。 以下是 Spring Boot 的一些特性:
可以避免使用 Spring 中的 XML 進行繁瑣的配置
可以輕鬆維護和建立 REST 端點
包含嵌入式 Tomcat 伺服器 部署非常簡單,
war 和 jar 檔案可以輕鬆部署到 Tomcat 伺服器中
Spring Boot Starter Web
主要用於構建 Web 應用程式,其中包括使用 Spring MVC 的 RESTful 應用程式。它使用 Tomcat 作為預設的嵌入式容器。
它有兩個重要特性:
與 WEB 開發相容
可自動配置
我們需要在 Spring Boot Starter Web 的 pom.xml 檔案中新增以下依賴關係:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.2.2.RELEASE</version> </dependency>
它使用 Spring MVC、REST 和 Tomcat 作為預設的嵌入式伺服器。 只需要配置 spring-boot-starter-web 依賴項便可以實現引入開發所需要的相關依賴項。它還能減少構建依賴的數量。spring-boot-starter-web 主要依賴於以下內容:
org.springframework.boot:spring-boot-starter
org.springframework.boot:spring-boot-starter-tomcat
org.springframework.boot:spring-boot-starter-validation
com.fasterxml.jackson.core:jackson-databind
org.springframework:spring-web
org.springframework:spring-webmvc
預設情況下,spring-boot-starter-web 包含下面給出的 tomcat 伺服器依賴關係:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <version>2.0.0.RELEASE</version> <scope>compile</scope> </dependency>
Spring-boot-starter-web 會自動配置網路開發所需的以下內容:
Dispatcher Servlet
錯誤頁面
嵌入式 Servlet 容器
用於管理靜態依賴關係的 Web JAR
Spring Boot 還支援 Jetty Server 和 Undertow Server。 它們都是嵌入式網路伺服器。 我們還可以按如下方法將 spring-boot-starter-tomcat 從 spring-boot-starter-web 中排除:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency>
Spring Boot Starter Tomcat
Spring-boot-starter-tomcat 包含與 Tomcat 伺服器相關的所有內容,它有
core
el
logging
WebSocket
它有以下依賴項:
<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-core</artifactId> <version>8.5.23</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-el</artifactId> <version>8.5.23</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-websocket</artifactId> <version>8.5.23</version> <scope>compile</scope> </dependency>
Spring Boot Starter Web 與 Spring Boot Starter Tomcat 的區別
Spring Boot Starter Web |
Spring Boot Starter Tomcat |
---|---|
Spring Boot Starter Web 用於使用 Spring MVC 構建 RESTful 應用程式。 | Spring Boot Starter Tomcat 是 Spring Boot Starter Web 的預設嵌入式容器。 |
在使用網路服務時我們不能將其排除。 | 當我們想使用另一個嵌入式容器時,我們可以將其排除。 |
同時還支援 Jetty Server 和 Undertow Server。 | 只充當一個嵌入式網路伺服器。 |
它可自動配置 Dispatcher Servlet、Error Page、Embedded servlet container 和 Web JAR,以管理網路開發的靜態依賴關係。 | 它包含core、el、logging、WebSocket。 |
它包含 spring web 依賴項。 | 它包含與嵌入式 tomcat 伺服器相關的所有內容。 |
它自動配置用於 Web 開發的功能。 | 它被用作預設的嵌入容器。 |