📜  Spring Boot Starter Web

📅  最后修改于: 2021-01-11 05:05:11             🧑  作者: Mango

Spring Boot Starter网站

spring-boot-starter-web有两个重要功能:

  • 与Web开发兼容
  • 自动配置

如果要开发Web应用程序,则需要在pom.xml文件中添加以下依赖项:


org.springframework.boot
spring-boot-starter-web
2.2.2.RELEASE

Spring Web的启动程序使用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服务器依赖项:


org.springframework.boot
spring-boot-starter-tomcat
2.0.0.RELEASE
compile

spring-boot-starter-web自动配置Web开发所需的以下各项:

  • 分派器Servlet
  • 错误页面
  • 用于管理静态依赖项的Web JAR
  • 嵌入式Servlet容器

Spring Boot嵌入式Web服务器

每个Spring Boot应用程序都包含一个嵌入式服务器。嵌入式服务器被嵌入为可部署应用程序的一部分。嵌入式服务器的优点是,我们不需要在环境中预安装服务器。使用Spring Boot,默认的嵌入式服务器是Tomcat 。 Spring Boot还支持另外两个嵌入式服务器:

  • 码头服务器
  • Undertow服务器

使用另一个嵌入式Web服务器

对于小服务程序栈的应用,弹簧引导启动,网络包括Tomcat的通过包括弹簧引导起动tomcat的,但我们可以用弹簧引导启动,码头弹簧引导起动暗流代替。

对于反应性堆的应用,所述弹簧引导起动webflux包括反应器的Netty通过包括弹簧引导起动反应器-网状,但我们可以用弹簧引导起动的Tomcat,弹簧引导起动码头,弹簧-boot-starter-undertow代替。

码头服务器

Spring Boot还支持称为Jetty Server的嵌入式服务器。它是一个HTTP服务器和Servlet容器,具有提供静态和动态内容的功能。当需要机器对机器的通讯时使用。

如果要在应用程序中添加Jetty服务器,则需要在pom.xml文件中添加spring-boot-starter-jetty依赖项。

切记:在应用程序中使用Jetty服务器时,请确保从spring-boot-starter-web中排除了默认的Tomcat服务器。它避免了服务器之间的冲突。


org.springframework.boot
spring-boot-starter-web


org.springframework.boot
spring-boot-starter-tomcat




org.springframework.boot
spring-boot-starter-jetty

我们还可以使用application.properties文件来自定义Jetty服务器的行为。

Undertow服务器

Spring Boot提供了另一个名为Undertow的服务器。它也是像Jetty这样的嵌入式Web服务器。它用Java编写,由JBoss管理和赞助。 Undertow服务器的主要优点是:

  • 支持HTTP / 2
  • HTTP升级支持
  • Websocket支持
  • 提供对Servlet 4.0的支持
  • 灵活
  • 可嵌入

切记:在应用程序中使用Undertow服务器时,请确保从spring-boot-starter-web中排除了默认的Tomcat服务器。它避免了服务器之间的冲突。


org.springframework.boot
spring-boot-starter-web


org.springframework.boot
spring-boot-starter-tomcat




org.springframework.boot
spring-boot-starter-undertow

我们还可以使用application.properties文件来自定义Undertow服务器的行为。

spring-boot-starter-web vs.spring-boot-starter-tomcat

spring-boot-starter-web包含spring网络依赖关系,其中包括spring-boot-starter-tomcat。 spring-boot-starter-web包含以下内容:

  • 弹簧启动启动器
  • 杰克逊
  • 弹簧芯
  • 春季MV
  • 弹簧启动启动器tomcat

spring-boot-starter-tomcat包含与Tomcat服务器相关的所有内容。

  • 核心
  • 埃尔
  • 测井
  • 网络套接字

starter-tomcat具有以下依赖性:


org.apache.tomcat.embed
tomcat-embed-core
8.5.23
 compile


org.apache.tomcat.embed
tomcat-embed-el
8.5.23
compile


org.apache.tomcat.embed
tomcat-embed-websocket
8.5.23
compile

我们也可以不使用嵌入式Tomcat服务器而使用spring-mvc。如果要这样做,我们需要使用标记排除Tomcat服务器,如以下代码所示。


org.springframework.boot
spring-boot-starter-web


org.springframework.boot
spring-boot-starter-tomcat