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内置服务器切换及原理
目录
前言
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源码(十)