【SpringBoot 怎么切换成其它的嵌入式 Servlet 容器】
❶ 简介❷ 默认 tomcat 服务器➌ 查看内置服务器种类❹ 类图一、简介Spring Boot支持的内嵌容器有Tomcat默认、Jetty、Undertow 和 ReactorNettyv2.0借助可插拔SPI机制的实现开发者可以轻松进行容器间的切换。如何切换成其它的嵌入式Servlet容器(Jetty 和 Undertow)SpringBoot默认使用的内置Servlet容器是Tomcat然而 SpringBoot还支持其它的Servlet容器 默认的Tomcat只是其中一种SpringBoot还支持Jetty和Undertow二、默认 tomcat 服务器当我们创建完 SpringBoot 项目导入web 依赖后在启动后会发现默认启动的是 Tomcat 服务器如下图空色框内所示三、查看内置服务器种类查看路径org.springframework.boot.autoconfigure.web.embedded查看源码找到四种内置服务器。在autoconfigure下的 web/embedded 下面会发现如下图所示的四种服务器分别是Jetty、Netty、Tomcat、Undertow 服务器还有一个配置服务器的条件类。这里就是我们对应的 web 服务器工厂jettynettytomcatundertow这四种我们这里注意怎么切换这四种服务器即可我们查看配置服务器的条件类 EmbeddedWebServerFactoryCustomizerAutoConfiguration 代码注意Conditional 是条件判断返回 boolean 值如果为 true 才会执行该方法。这里如果我们在程序中有相应的字节码文件的话那么我们就会创建对应的服务器这个 .class 是字节码文件四、类图从 pom 文件中 dependency 为 spring-boot-starter-web 中查看类图可以看到 SpringBoot 默认内置服务器是 tomcat所以我们想要使用其他服务器只需要两步即可1⃣️必须先将 tomcat 服务器排除掉2⃣️然后再去进行依赖配置pom 文件添加 dependency要切换的服务器。pom.xml 中添加依赖这里以 jetty 服务器进行演示dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId!-- 排除 tomcat 依赖 --exclusionsexclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-tomcat/artifactId/exclusion/exclusions/dependency!-- 引入 jetty 的依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jetty/artifactId/dependency启动看效果