首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一文带你彻底搞懂SpringBoot嵌入式Web容器原理

开发者不再需要关心传统容器(如Tomcat)中web.xml的配置,同时实现容器的具体技术都是可替换及可更改的,这些技术以插件化的Starter组件方式在运行时加载到Spring容器中。...执行刷新,源码如下: 3.创建Tomcat实例 这里我们继续跟进 createEmbeddedServletContainer方法,获得一个嵌入式的容器工厂类:EmbeddedServletContainerFactory...Spring Boot的默认容器是Tomcat,其工厂类实现了Tomcat实例的加载,代码如下: 在prepareContext方法中,可以将默认的JSP和Servlet Bean组件加载到Spring...5.Tomcat组件加载 下面的代码是在Tomcat容器启动后,允许用户存储自定义scope,用来将Web专用的scope注册到BeanFactory中,同时配置servlet、filter、listener...beans.onStartup ( servletContext ) 方 法 中 将 实 现 从 Servlet 到URLMapping的映射,至此Tomcat的初始化工作完成。

1.1K20

在应用中嵌入Tomcat

很多 Java web 应用和服务,包括开源的和商业化的(比如 Alfresco, iRise, Confluence等),都倾向于将 Apache Tomcat Servlet 引擎整个嵌入到他们的分发包中...在下面的教程中,我们将会对 Jetty (Jetty 是一个为此目的而设计的一种嵌入式 servlet 引擎)进行测试,同时还会展示如何将 Jetty 迁移到 Tomcat 。...最后,我在 Tomcat 的文档中没有找到类似 Jetty 中的 setResourceBase 方法来获取静态资源,因此只能创建一个自己的 StaticContentServlet,接下来将会看到。...这个获取静态资源的 servlet 只有一些基本功能。只是简单地找到类路径下的资源并返回。难点是正确地设置 Mime-Type。...如果你由于软件分发打算学习如何将 Tomcat 嵌入到 web 应用中,希望这篇教程可以帮到你。

2.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SpringBoot进阶

    properties文件, 去去springboot-autoConfiguration看配置类 高级特性 自己写的logback.xml中可以加 ...嵌入式Servlet容器 SpringBoot默认使用的是嵌入式的Servlet容器(Tomcat) 1)定制和修改Servlet容器的相关配置 server.port=8081 server.servlet.context-path...使用外置的Servlet容器 嵌入式简单便捷、优化定制比较复杂,使用定制器或properties等来改变 外置的Serlvlet容器:外面安装Tomcat服务器--应用打包war包打包 必须创建war包...将嵌入式Tomcat指定为provided 必须编写一个ServletInitializer,并调用configure方法 启动服务器 外置Servlet容器的启动原理, jar包:执行Spring主类的...applicationContextListener然后保存起来 从多个配置类中找到main方法的主配置类 运行run方法 获取SpringapplicationRunListeners:从类路径下META-INF

    92620

    SpringBoot源码分析

    Web服务器 SERVLET 应用程序应作为基于servlet的Web应用程序运行,并应启动嵌入式Servlet Web服务器 ② setInitializers((Collection) getSpringFactoriesInstances...通过上面分析,可以得出结论,通过@EnableAutoConfiguration,Spring在启动的时候,会把上面100多个配置类加载到SpringIOC容器中去。...下面我们继续分析,在ServletWebServerFactoryAutoConfiguration类中,会引入三个容器注入到IOC容器中,SpringBoot默认的WEB容器为Tomcat,所以我们重点分析...Tomcat,进入EmbeddedTomcat类(Embedded英文意思为嵌入式的) 进入EmbeddedTomcat类后,可以看到该类定义一个bean,往SpringIOC容器注入了名为TomcatServletWebServerFactory...的类 进入TomcatServletWebServerFactory类,可以发现Spring底层会执行:Tomcat tomcat = new Tomcat(),SpringBoot嵌入的Tomcat

    27040

    SpringBoot 笔记(十一):Servlet容器

    SpringBoot 笔记 ( 十一 ):Servlet容器 SpringBoot默认使用Tomcat作为嵌入式的Servlet容器 1)、定制和修改Servlet容器的相关配置 1、修改配置文件中的和...嵌入式的Servlet容器的定制器,来修改Servlet容器的配置 12345678910 @Bean //将这个定制器加入到容器中public EmbeddedServletContainerCustomizer...>spring-boot-starter-web 引入web模块默认就是使用嵌入式的Tomcat作为Servlet容器; 2.Jetty(长链接类的服务...getSelfInitializer()); 7)、嵌入式的Servlet容器创建对象并启动Servlet容器 先启动嵌入式的Servlet容器,再将ioc容器中剩下没有创建出的对象获取出来,这个时候我们自己写的...打包方式 jar包:执行SpringBoot主类的main方法,启动ioc容器,创建嵌入式的Servlet容器。

    1.3K20

    微服务架构Day05-SpringBoot之Servlet

    旧版 配置嵌入式Servlet容器 SpringBoot默认使用Tomcat作为嵌入式Servlet容器 如何定制和修改Servlet容器相关配置 1.在配置文件中定制和修改Servlet容器有关的配置...,只要是嵌入式Servlet容器工厂,后置处理器就会工作. 3.后置处理器从容器中获取所有嵌入式容器处理器定制器,调用嵌入式容器处理器定制器中的方法对嵌入式容器处理器进行配置 嵌入式Servlet容器启动原理...,Tomcat嵌入式Servlet容器工厂创建对象,后置处理器就获取所有定制器来定制Tomcat嵌入式Servlet容器的配置 7.使用Tomcat嵌入式Servlet容器工厂获取嵌入式servlet...容器 8.嵌入式的Servlet容器创建对象并启动Servlet容器,先启动嵌入式的Servlet容器,再将IOC容器中对象获取出来 至此,完成IOC容器启动创建嵌入式Servlet容器 使用外置的...) 外置的Servlet容器:外置安装Tomcat-应用war包的方式打包 步骤 1.创建一个war项目,配置好项目的Project Structure 2.将嵌入式的Tomcat指定为provided

    40610

    SpringBoot 自动装配简述(八)

    前面看到了,使用 spring boot 零配置就可以运行起来(笔者在 yml 中配置了端口号,不配的话,它有一个默认的 8080 端口号),这就是 SpirngBoot 自动装配的能力了。...@EnableAutoConfiguration 启用 Spring Application Context 的自动配置,尝试猜测和配置您可能需要的 bean。...configurations 不能为空,根据异常里面的信息:在 META-INF/spring.factories 中没有找到自动配置类。...可以看到里面包含了很多的自动配置类,其中我们主要关注下 EmbeddedWebServerFactoryCustomizerAutoConfiguration 从名称翻译含义为 嵌入式 Web 服务器出厂自定义程序自动配置...这里有一个 tomcat 启动相关的代码,这也是为什么嵌入式 tomcat 会启动的原因 这一章主要学习到了通过查看源代码的方式。

    23410

    微服务架构之Spring Boot(三十七)

    执行此操作时,将 使用下表中显示的订单: 网络过滤器 订购 MetricsWebFilter Ordered.HIGHEST_PRECEDENCE + 1 WebFilterChainProxy (Spring...默认情况下,Jersey servlet已注册并映射到 /* 。您可以通过将 @ApplicationPath 添加到 ResourceConfig 来更改映射。...28.4嵌入式Servlet容器支持 Spring Boot包括对嵌入式Tomcat, Jetty和Undertow服务器的支持。大多数开发人员使用适当的“Starter”来获取完全配置的实例。...默认情 况下,嵌入式服务器侦听端口 8080 上的HTTP请求。 如果您选择在CentOS上使用Tomcat ,请注意,默认情况下,临时目录用于存储已编译的JSP,文件上载等。...要避免此行为,您可能希望自定义 tmpwatch 配置,以便不删除 tomcat.* 目 录或配置 server.tomcat.basedir ,以便嵌入式Tomcat使用不同的位置。

    98010

    SpringBootWeb容器配置:JAX-RS和Jersey框架、内嵌容器的配置

    示例:在应用中添加ViewResolver组件用来匹配HTML静态页面,如果没有匹配成功,则返回false,由其他ViewResolver继续尝试匹配。...示例:Spring Boot可以为HttpMessageConverters类添加自定义转换类,通过这种方式可以将所有的HttpMessageConverters的Bean添加到Converter列表,...要使用该接口,我们需要先注释掉前面两节中提到的相关代码,然后创建一个类: 默 认 情 况 下 , Jersey 将 以 Servlet 的 形 式 注 册 一 个 ServletRegistrationBean...Tomcat容器完成自动配置的类图结构。...我们在最新的Spring Boot下查看Tomcat的相关配置,发现有两个自动装配类,分别包含了三个定制器,还有一个工厂类。

    82310
    领券