Spring Boot默认支持Tomcat作为嵌入式Servlet容器。
搜狗截图20180302114401.png

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. <!--引入web模块默认就是使用嵌入式的Tomcat作为Servlet容器-->
  5. </dependency>

替换成Jetty

Jetty就是一个开源的HTTP服务器和Servlet引擎,它可以为JSP和Servlet提供运行时环境。由于其轻量、灵活的特性,Jetty也被应用于一些知名产品中,例如ActiveMQ、Maven、Spark、GoogleAppEngine、Eclipse、Hadoop等。 为什么使用Jetty? 1、异步的 Servlet,支持更高的并发量
2、模块化的设计,更灵活,更容易定制,也意味着更高的资源利用率 3、在面对大量长连接的业务场景下,Jetty 默认采用的 NIO 模型是更好的选择 4、将Jetty嵌入到应用中,使一个普通应用可以快速支持 http 服务

  1. <!--引入web模块,但排除tomcat-->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-web</artifactId>
  5. <exclusions>
  6. <exclusion>
  7. <artifactId>spring-boot-starter-tomcat</artifactId>
  8. <groupId>org.springframework.boot</groupId>
  9. </exclusion>
  10. </exclusions>
  11. </dependency>
  12. <!--引入Jetty容器-->
  13. <dependency>
  14. <artifactId>spring-boot-starter-jetty</artifactId>
  15. <groupId>org.springframework.boot</groupId>
  16. </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,在高并发情况下表现非常出色。

  1. <!-- 引入web模块,排除tomcat -->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-web</artifactId>
  5. <exclusions>
  6. <exclusion>
  7. <artifactId>spring-boot-starter-tomcat</artifactId>
  8. <groupId>org.springframework.boot</groupId>
  9. </exclusion>
  10. </exclusions>
  11. </dependency>
  12. <!--引入Undertow容器-->
  13. <dependency>
  14. <artifactId>spring-boot-starter-undertow</artifactId>
  15. <groupId>org.springframework.boot</groupId>
  16. </dependency>

排除tomcat,引入Undertow之后,原来所有的关于server的配置都会重新配置到Undertow上,如果需要配置Undertow属性,则将server.tomcat.xxxx=value替换成server.undertow.xxxx=value即可。