栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot——嵌入式Servlet容器

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot——嵌入式Servlet容器

目录

1、SpringBoot内置Web服务器的启动原理

1、ServletWebServerFactoryAutoConfiguration

2、特定Web服务器的Servsr工厂类

undertowServletWebServerFactory:

JettyServletWebServerFactory :

tomcatServletWebServerFactory:

 2、修改默认配置

 1、切换服务器

2、 修改服务器默认的配置

3、直接自定义

1、SpringBoot内置Web服务器的启动原理

1、ServletWebServerFactoryAutoConfiguration

SpringBoot应用启动发现是Web应用。Web场景包导入tomcat

Web应用会创建一个Web版的ioc容器ServletWebServerApplicationContex

它通过搜索单个ServletWebServerFactorybean(Servlet的web服务器工厂,它产生Serlvet的web服务器)来引导自身。

web服务器工厂包括:TomcatServletWebServerFactory、JettyServletWebServerFactory或UnderTowletWebServerFactory。

底层直接有一个自动配置类:ServletWebServerFactoryAutoConfiguration。这个配置类还前置导入了上述三个工厂的自动配置类,如下

2、特定Web服务器的Servsr工厂类
@Import({ServletWebServerFactoryAutoConfiguration.BeanPostProcessorsRegistrar.class, EmbeddedTomcat.class, 
EmbeddedJetty.class, 
EmbeddedUndertow.class})
public class ServletWebServerFactoryAutoConfiguration {
    public ServletWebServerFactoryAutoConfiguration() {
    }

undertowServletWebServerFactory:

JettyServletWebServerFactory :

tomcatServletWebServerFactory:

 当然这三个工厂的创建是有条件的

tomcat:

项目导了tomcat的依赖,容器中就放一个tomcat的服务器创建工厂(默认web-starter导tomcat的依赖)

同理,

Undertow服务器

 

jetty服务器:

 

 

 

例:启动tomcat内嵌服务器 

内嵌服务器,就是手动吧启动服务器的代码调用(tomcat核心jar包),如下

 

 2、修改默认配置

 1、切换服务器

spring-boot-starter-tomcat是spring-boot-starter-web的子依赖。需要将spring-boot-starter-tomca排除,换上需要的服务器依赖,如下: 

 

2、 修改服务器默认的配置

 

 所以,yml文件中这样改:

 

serverProperties一览: 

 

3、直接自定义

原理:

Web应用会创建一个Web版的ioc容器ServletWebServerApplicationContex,它通过搜索单个ServletWebServerFactorybean(Servlet的web服务器工厂,它产生Serlvet的web服务器)来引导自身。

 所以,

自定义ConfigurableServletWebServerFactory

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/925050.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号