Spring Boot默认支持Tomcat作为嵌入式Servlet容器。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--引入web模块默认就是使用嵌入式的Tomcat作为Servlet容器-->
</dependency>
替换成Jetty
Jetty就是一个开源的HTTP服务器和Servlet引擎,它可以为JSP和Servlet提供运行时环境。由于其轻量、灵活的特性,Jetty也被应用于一些知名产品中,例如ActiveMQ、Maven、Spark、GoogleAppEngine、Eclipse、Hadoop等。 为什么使用Jetty? 1、异步的 Servlet,支持更高的并发量
2、模块化的设计,更灵活,更容易定制,也意味着更高的资源利用率 3、在面对大量长连接的业务场景下,Jetty 默认采用的 NIO 模型是更好的选择 4、将Jetty嵌入到应用中,使一个普通应用可以快速支持 http 服务
<!--引入web模块,但排除tomcat-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-tomcat</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
</dependency>
<!--引入Jetty容器-->
<dependency>
<artifactId>spring-boot-starter-jetty</artifactId>
<groupId>org.springframework.boot</groupId>
</dependency>
排除tomcat,引入Jetty之后,原来所有的关于server的配置都会重新配置到Jetty上,如果需要配置Jetty属性,则将server.tomcat.xxxx=value
替换成server.jetty.xxxx=value
即可。
替换成Undertow
Undertow是Red Hat公司的开源产品,它完全采用Java语言开发,是一款灵活的高性能Web服务器,支持阻塞IO和非阻塞IO。由于Undertow采用Java语言开发,可以直接嵌入到Java项目中使用。同时, Undertow完全支持Servlet和Web Socket,在高并发情况下表现非常出色。
<!-- 引入web模块,排除tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-tomcat</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
</dependency>
<!--引入Undertow容器-->
<dependency>
<artifactId>spring-boot-starter-undertow</artifactId>
<groupId>org.springframework.boot</groupId>
</dependency>
排除tomcat,引入Undertow之后,原来所有的关于server的配置都会重新配置到Undertow上,如果需要配置Undertow属性,则将server.tomcat.xxxx=value
替换成server.undertow.xxxx=value
即可。