SpringBoot内置服务器切换及原理

Posted 百里慕溪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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内置tomcat启动过程及原理

SpringBoot 高级 原理分析 -- @EnableAutoConfiguration 注解

SpringBoot 高级 原理分析 -- @Import注解

SpringBoot 高级 原理分析 -- @Enable*注解@Import注解

SpringBoot 高级 原理分析 -- 自定义redis-starter

猿创征文|Spring Boot运行原理及功能实现方式