Spring Boot Starter Web和Spring Boot Starter Tomcat的区别
Spring Boot构建在Spring之上,包含Spring的所有特性。由于其快速的产品就绪环境,使得开发人员可以直接专注于逻辑,而不是纠结于配置和设置,它现在成为开发人员的最爱。Spring Boot是一个基于微服务的框架,在其中制作一个产品应用只需要很少的时间。以下是Spring Boot的一些特性:
- 它可以避免春季出现的大量XML配置
- 它提供了简单的维护和REST端点的创建
- 它包含嵌入式的Tomcat-server
- 部署非常容易,war和jar文件可以很容易地部署在tomcat服务器上
Spring Boot Starter Web
它主要用于使用Spring MVC构建包含RESTful应用程序的web应用程序。它使用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依赖项可以拉入所有与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自动配置web开发所需的以下内容:
- Dispatcher Servlet
- Error Page
- 嵌入servlet容器
- 用于管理静态依赖关系的Web jar
Spring Boot还支持Jetty Server和Undertow Server。它们是嵌入式web服务器。我们也可以从spring-boot-starter-web中排除spring-boot-starter-tomcat,如下所示:
<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的默认嵌入式容器。 |
我们不能在使用web服务时排除它。 | 当我们想要使用另一个嵌入式容器时,可以排除它。 |
它还支持Jetty服务器和Undertow服务器。 | 它充当嵌入式web服务器。 |
它自动配置Dispatcher Servlet、错误页面、嵌入式Servlet容器和Web jar,用于管理Web开发的静态依赖项。 | 它有一个核心,el。日志,WebSocket。 |
它包含spring web依赖项。 | 它包含与嵌入式tomcat服务器相关的所有内容。 |
它自动配置用于web开发的特性。 | 它被用作默认的嵌入式容器。 |