springboot内置服务器选型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot内置服务器选型相关的知识,希望对你有一定的参考价值。

参考技术A 1、有四种可选

tomcat(默认),jetty(netty的web),undertow

2、追求高并发:undertow

    自动实现优雅停机:jetty,其他服务器需要实现applcationListener的closeEvet。

tomcat支持bio和nio

3、具体应该借助jmeter压测观察哪种合适,tomcat较稳定,是默认内置。

SpringBoot内置服务器切换及原理

目录

前言

1、内置服务器切换方法

1、排除Tomcat起步依赖

2、添加指定web容器起步依赖

3、启动测试

 2、内置服务器切换原理


前言

        SpringBoot(本文版本2.5.4)中内置了4款web服务器,Tomcat、Jetty、Netty、Undertow,默认使用Tomcat,如果不想使用默认的Tomcat,则可以进行切换。

1、内置服务器切换方法

1、排除Tomcat起步依赖

Tomcat起步依赖是集成在spring-boot-starter-web中的,在其内部进行排除即可,如果开发工具是Idea,打开pom.xml,快捷键Ctrl+Alt+Shift+U查看依赖关系图,找到spring-boot-starter-tomcat这个依赖,然后选中它,快捷键Shift+Delete将其排除,会自动在pom.xml文件中增加如下配置:

<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>

2、添加指定web容器起步依赖

比如我想使用Jetty服务器,就添加如下起步依赖:

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>

3、启动测试

启动项目,控制台输出如下,说明服务器成功切换:

 2、内置服务器切换原理

        首先我们来看一下org.springframework.boot.autoconfigure这个自动装配包,找到内部的web.embedded包,这个包见文识意,就是配置一些内置的插件:

         看到注解一下子就豁然明朗了,这不就是Condition判断器实现的嘛,具体的Condition注解类内部原理在上一篇自动装配有讲解,请移步>>>SpringBoot自动配置原理Condition(详细源码分析)

以上是关于springboot内置服务器选型的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot内置生命周期事件详解 SpringBoot源码(十)

SpringCloud与SpringBoot区别

SpringBoot(17)---SpringBoot整合RocketMQ

正确安全地停止SpringBoot应用服务

【微服务】- SpringBoot Admin

SpringCloud